[英]How create init VC from Storyboard?
我必須從AppDelegate中的UIStoryboard創建初始化VC。
我使用了.instantiateInitialViewController()但我總是得到nil。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
self.window = UIWindow(frame: UIScreen.main.bounds)
let storyBoard: UIStoryboard = .init(name: "Storyboard", bundle: nil)
if let vc = storyBoard.instantiateInitialViewController() {
window?.rootViewController = vc
window?.makeKeyAndVisible()
}
return true
}
我的項目:
我沒有“ ViewController”文件(也沒有課程)。 為什么我總是在vc中得到“ nil”? 它是如何工作的? 請解釋。
storyBoard.instantiateInitialViewController
返回nil的最可能原因是因為您的故事板沒有初始視圖控制器。 您可以在情節提要中選擇一個VC,然后選中“是初始視圖控制器”以使其成為初始視圖控制器:
請注意,如果在項目設置中將情節提要板設置為“主界面”,則初始VC將自動顯示。
為避免這種情況,請將此設置更改為空字符串:
或者,您可以在身份檢查器中為您的VC提供標識符:
並使用instantiateViewController(withIdentifier)
代替
storyBoard.instantiateViewController(withIdentifier: "MyVC")
嘗試這個..
let navigationController = self.window?.rootViewController as! UINavigationController
let storyboard = UIStoryboard(name: "Storyboard", bundle: nil)
let messageVC = storyboard.instantiateViewController(withIdentifier: "YourViewControllerID")
navigationController.pushViewController(messageVC, animated: true)
嘗試這個。 我總是使用這些代碼在視圖控制器之間導航,
let vc = storyboard?.instantiateViewController(withIdentifier: "ViewControllerStoryBoardId") as! YourViewControllerClass
vc.page_idenifier = "Home page"//eg:- Passing data
navigationController?.pushViewController(vc, animated: true)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.