在场景委托中更改主情节提要后导航控制器不工作
Naviagtion Controller not working after chnaging main storyboard in Scene delegate
我已经从我的项目中删除了 main.storyboard,并使用 scenedelegate.swift 文件将初始屏幕更改为 Home.storyboard。现在当我尝试导航控制器时,它是零。
SceneDelegate.swift
guard let winScene = (scene as? UIWindowScene) else { return }
window = UIWindow(windowScene: winScene)
let storyboard = UIStoryboard(name: "VerifyOTP", bundle: nil)
let initialViewController = storyboard.instantiateViewController(identifier: "VerifyOTP") window?.rootViewController = initialViewController
window?.makeKeyAndVisible()
HomeVC.swift
let OrderScreen: PlaceOrderVC = self.storyboard!.instantiateViewController(withIdentifier: "PlaceOrder") as! PlaceOrderVC
let navigationController = self.navigationController!
print(navigationController)
OrderScreen.BillDisplay = self.billing
navigationController.pushViewController(OrderScreen, animated: true)
您需要将 initialViewController
嵌入导航控制器,然后将 navController
设为 rootViewController
。检查下面的代码。
guard let winScene = (scene as? UIWindowScene) else { return }
window = UIWindow(windowScene: winScene)
let storyboard = UIStoryboard(name: "VerifyOTP", bundle: nil)
let initialViewController = storyboard.instantiateViewController(identifier: "VerifyOTP")
let navController = UINavigationController(rootViewController: initialViewController)
window?.rootViewController = navController
window?.makeKeyAndVisible()
我已经从我的项目中删除了 main.storyboard,并使用 scenedelegate.swift 文件将初始屏幕更改为 Home.storyboard。现在当我尝试导航控制器时,它是零。
SceneDelegate.swift
guard let winScene = (scene as? UIWindowScene) else { return }
window = UIWindow(windowScene: winScene)
let storyboard = UIStoryboard(name: "VerifyOTP", bundle: nil)
let initialViewController = storyboard.instantiateViewController(identifier: "VerifyOTP") window?.rootViewController = initialViewController
window?.makeKeyAndVisible()
HomeVC.swift
let OrderScreen: PlaceOrderVC = self.storyboard!.instantiateViewController(withIdentifier: "PlaceOrder") as! PlaceOrderVC
let navigationController = self.navigationController!
print(navigationController)
OrderScreen.BillDisplay = self.billing
navigationController.pushViewController(OrderScreen, animated: true)
您需要将 initialViewController
嵌入导航控制器,然后将 navController
设为 rootViewController
。检查下面的代码。
guard let winScene = (scene as? UIWindowScene) else { return }
window = UIWindow(windowScene: winScene)
let storyboard = UIStoryboard(name: "VerifyOTP", bundle: nil)
let initialViewController = storyboard.instantiateViewController(identifier: "VerifyOTP")
let navController = UINavigationController(rootViewController: initialViewController)
window?.rootViewController = navController
window?.makeKeyAndVisible()