【发布时间】:2016-05-02 09:36:59
【问题描述】:
用户界面流程:
AppDelegate
-->
LoginViewController(不在故事板中)
-->
导航控制器(在故事板中)
-->
PFQueryTableViewController(在故事板中)命名为"OrdersVC"
这是带有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 呢?
【问题讨论】:
-
你能更清楚地解释这里涉及的视图控制器层次结构吗?最终,
self.navigationController是nil“如果视图控制器没有嵌入到导航控制器中”。也许您嵌入的视图控制器与您想象的不同? -
试图增加清晰度,请参阅修改后的 Q。是否有可能因为我试图实例化一个设置为情节提要的初始视图控制器的导航控制器而得到 nil?
标签: ios uinavigationcontroller swift2 uistoryboard