【问题标题】:self.navigationController is always nilself.navigationController 始终为零
【发布时间】: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)

问题是在我的PFQueryTableViewControllerviewDidLoadviewDidAppear 中,以下语句始终是nil

// navitaionController is nil
self.navigationController!.navigationBar.translucent = false

那么我怎样才能在其导航控制器中正确地实例化 PFQueryTableViewController 呢?

【问题讨论】:

  • 你能更清楚地解释这里涉及的视图控制器层次结构吗?最终,self.navigationControllernil“如果视图控制器没有嵌入到导航控制器中”。也许您嵌入的视图控制器与您想象的不同?
  • 试图增加清晰度,请参阅修改后的 Q。是否有可能因为我试图实例化一个设置为情节提要的初始视图控制器的导航控制器而得到 nil?

标签: ios uinavigationcontroller swift2 uistoryboard


【解决方案1】:

您正在实例化OrdersVC,而不是实例化嵌入它的导航控制器,它是故事板的“初始”视图控制器。使用instantiateInitialViewController 而不是使用标识符。

let nav = storyboard.instantiateInitialViewController()
self.window!.rootViewController = nav

造成混淆的原因是您正在将故事板中的初始视图控制器与您的登录控制器“取消链接”。您必须将初始视图控制器添加回主窗口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-16
    • 2020-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多