swift - 将 NavigationBarController 设置为 rootViewController
问题描述
我尝试使用 MVC 模式,其中我的 NavigationController 实例化并控制我的所有视图和相应的视图开关。为此,我只需实例化我的 navigationController 并将其设置为 app delegate 中的 rootViewController。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
self.window = UIWindow(frame: UIScreen.main.bounds)
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let navigationController: NavigationController = (mainStoryboard.instantiateViewController(withIdentifier: "navigationController") as! NavigationController)
self.window?.rootViewController = navigationController
self.window?.makeKeyAndVisible()
return true
}
在viewDidLoad()
我的 NavigationController 类的函数中,我只是用 myTableViewController 实例化我的第一个“真实”视图并将其推到前面。
override func viewDidLoad() {
super.viewDidLoad()
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
self.myTableViewController = mainStoryboard.instantiateViewController(withIdentifier: "myTableViewController") as? MyTableViewController
self.pushViewController(myTableViewController!, animated: true)
}
尽管一切正常,但我收到控制台警告:
无法为 UIMainStoryboardFile 'Main' 实例化默认视图控制器 - 也许未设置指定的入口点?
我认为会出现此警告,因为 navigationController 不是“真正的” ViewController ...但是如何在 App 委托中实例化 MyTableView() 的情况下修复它?
解决方案
推荐阅读
- python-3.x - 将 Python 代码部署到 Google 云,以更新云 sql 中的表以用于 mysql
- kubernetes - 即使在 pod 重新启动后,如何在 kubernetes 的 pod 中的文件中保持更改完成?
- oracle - 拒绝访问域时如何使用 startComponent.cmd 启动 oracle 报表服务器
- php - laravel,如何向函数 __construct() 添加条件
- curl - curl命令出错(curl:(35)读取X.509可能加密的密钥文件时出错:解析时出错。)
- python - 使用 Pandas 计算累积平均值
- mysql - 来自 MySQL 的数据透视表
- android - 卡住部分唤醒锁 - AudioMix
- c# - Ninject Asp.Net WebApi Authorization Filter 执行顺序
- javascript - 负后向正则表达式的替代方法在 Firefox 中不起作用