Jen*_*eal 0 uinavigationcontroller ios swift
我有一个导航控制器,用于我的父视图控制器以及我的子视图控制器.子视图控制器进入另外两个视图控制器,即"UserLoginViewController"和"RegisterVC".我希望UserLogin中的子视图按钮执行Button操作,该操作又执行涉及父视图控制器及其导航控制器的segue.
这是我使用的代码:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == Constants.embedSegue {
            let childViewController = segue.destinationViewController as! UserLoginViewController
            childViewController.delegate = self
        }
    }
Run Code Online (Sandbox Code Playgroud)
从parentVC调用UserLoginVC.
我得到一个错误说
无法将'UINavigationController'类型的值(0x109aa7860)转换为'Storey_Keeper.UserLoginViewController'(0x10645b810).
救命?
segue.destinationViewControllerUINavigationViewController如果你的内容UserLoginViewController是自己的,那将是一个UINavigationController.
你可以这样得到它:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == Constants.embedSegue {
        if let navigationController = segue.destinationViewController as? UINavigationController {
            let childViewController = navigationController.topViewController as? UserLoginViewController
            childViewController?.delegate = self
        }
    }
}
Run Code Online (Sandbox Code Playgroud)
一般来说,我会反对强制施法.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           5024 次  |  
        
|   最近记录:  |