use*_*042 1 uiviewcontroller uinavigationcontroller swift
我的故事板中有3个项目.1. viewController(A)连接到2.导航控制器和3. viewController(B)没有连接任何东西所有3个项目都在故事板中设置了恢复标识符.
viewController(B)是初始视图控制器.我在B中尝试获取附加A的导航控制器,但总是返回nil:
let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyBoard.instantiateViewControllerWithIdentifier("viewControllerA") as! ViewControllerA
print(vc.navigationController?) // always prints nil
Run Code Online (Sandbox Code Playgroud)
为什么!?
更新#1 我不能像视图控制器一样声明UINavigationController.我已经尝试将id为'myNavigationController'的navigationcontroller设置为storyboardID:
当故事板,我得到这个错误
let navigationController = storyBoard.instantiateViewControllerWithIdentifier("myNavigationController") as! UINavigationController
print(self.navigationController!) // fatal error: unexpectedly found nil while unwrapping an Optional value
Run Code Online (Sandbox Code Playgroud)
我也尝试在恢复标识符中设置id,它早先在实例化的行中被轰炸了
@ColdLogic,看看我在整个项目中搜索该标识符时得到的匹配:
因为您从未实例化导航控制器,所以您实例化了视图控制器A.如果您希望设置导航控制器和视图控制器,就像它们在故事板中一样,您会想要这样的东西
let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let navigationController = storyBoard.instantiateViewControllerWithIdentifier("YourNavControllerIdentifier") as! UINavigationController
let vc = navigationController.topViewController as! ViewControllerA
Run Code Online (Sandbox Code Playgroud)
您的代码直接实例化ViewControllerA类型的对象.除非您设置逻辑,否则默认情况下没有导航控制器.
归档时间: |
|
查看次数: |
3311 次 |
最近记录: |