UI流程:LoginViewController
- —〉
LoginViewController
(不在情节提要中) - —〉
导航控制器(在情节提要中) - —〉
名为"OrdersVC"
的PFQueryTableViewController
(在情节提要中)
这是带有OrdersVC
的导航控制器:
这是我的AppDelegate
:
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// ...
// initial VC
let VC = LoginViewController()
window = UIWindow(frame: UIScreen.mainScreen().bounds)
window!.rootViewController = VC
window!.makeKeyAndVisible()
return true
}
上面的代码运行良好。然后,从LoginViewController
开始,我试着显示我的故事板的初始VC,它是一个托管PFQueryTableViewController
的导航控制器。注意,LoginViewController
不在故事板中。
let destVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("OrdersVC") as! UITableViewController
// will throw "unexpectedly found nil"
let navController = UINavigationController(rootViewController: destVC)
navController.pushViewController(destVC, animated: true)
// will throw "unexpectedly found nil"
self.presentViewController(navController, animated: true, completion: nil)
问题是在我的PFQueryTableViewController
的viewDidLoad
和viewDidAppear
中下面的语句总是nil
:
// navitaionController is nil
self.navigationController!.navigationBar.translucent = false
那么,如何在PFQueryTableViewController的导航控制器中正确地示例化它呢?
1条答案
按热度按时间yh2wf1be1#
您正在示例化
OrdersVC
,而不是示例化它所嵌入的导航控制器,该导航控制器是情节提要的“初始”视图控制器。请使用instantiateInitialViewController
而不是使用标识符。造成混乱的原因是您正在将初始视图控制器从故事板与登录控制器“取消链接”。您必须将初始视图控制器添加回主窗口。