[英]How to re-enable or use storyboard in Xcode?
我繼承了一個要使用的應用程序,以前的工程師沒有使用情節提要,而是將所有內容都進行了硬編碼。現在,我必須更改應用程序中項目的格式和位置,使用情節提要會容易得多。 他們是否仍然可以使用情節提要,並立即顯示應用程序中已硬編碼的內容?
我已經附加了我的圖像,右鍵單擊情節提要,然后嘗試使用界面生成器,但是單擊它時沒有任何反應。 我還附上了代碼片段的照片,其他工程師聲稱這些代碼片段已使AppDelegate
不再需要情節AppDelegate
。 我嘗試注釋掉代碼行,當我這樣做時,該應用程序只是一個黑屏。
有問題的代碼為:
var window: UIWindow?
window = UIWindow(frame: UIScreen.main.bounds)
window?.makeKeyAndVisible()
通過代碼從storyboard
rootViewController
加載rootViewController
。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
// ....
// Initilazie main window.
let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
let rootController = mainStoryboard.instantiateInitialViewController()!
guard let w = self.window else { return true }
w.rootViewController = rootController
w.makeKeyAndVisible()
}
我建議將現有的由代碼設計的UI和由故事板設計的新UI結合起來。 因為可以通過代碼從情節UIViewController
中加載UIViewController
。 它可以很容易地組合到現有項目中。
// Example
let storyboard = UIStoryboard(name: "DeviceConfigStoryboard", bundle: nil)
let v = storyboard.instantiateViewController(withIdentifier: "upgrade_device") as! DCNavigationViewControllerBase
v.configure(device: device)
如果是google multiple storyboard
,則可以找到許多有關將UI划分為多個Storyboard文件的教程, 例如本教程。
在您的Info.plist文件中添加情節提要文件的名稱。
如果在info.plist中找不到鍵“ UIMainStoryboardFile”,請打開該文件作為源代碼並添加:
<key>UIMainStoryboardFile</key>
<string>Main</string>
這應該將故事板設置為該應用程序的起點。 確保您的情節提要中有一個初始ViewController。
備注:我仍然建議您堅持使用基於代碼的UI,尤其是當您在項目中與多個開發人員一起工作時。 從長遠來看,制作情節提要時獲得的便利可能會花費您寶貴的時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.