我有一些代码将两个 ViewController 推送到 NavigationController 堆栈。这是因为我想打开菜单的“子菜单” View 。
let menuVC = storyboard!.instantiateViewControllerWithIdentifier("menuView") as! MenuTableViewController
menuVC.delegate = self
let menuSubVC = storyboard!.instantiateViewControllerWithIdentifier("menuViewSub") as! SubscriptionsTableViewController
menuSubVC.delegate = menuVC
controllers?.append(menuVC)
controllers?.append(menuSubVC)
navigationController?.setViewControllers(controllers!, animated: true)
正如您在代码中看到的,有一些委托(delegate)参与其中。 menuSubVC 中的一种方法调用 menuVC 中的委托(delegate)方法,当我尝试将 ImageView 导出设置为新的空图像时,该方法给我一个错误:
allCheckmark.image = UIImage()
为什么这不起作用?当我打开菜单然后打开子菜单时它工作得很好,但是如果我用上面的代码将两者插入堆栈,它就不起作用。
最佳答案
当您将两者插入堆栈时,subMenuVC 位于下方,因此未加载 View ,这意味着没有设置任何 IBOutlet。
关于将多个 ViewController 推送到 NavigationController 堆栈时的 iOS 委托(delegate)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33631306/