簡體   English   中英

如何在Xcode中重新啟用或使用情節提要?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM