我有一个视图控制器 - NewsController
,其模态segue转到NewsDetailController
在NewsDetailController
中我试图运行以下功能:
@IBAction func greenLikeClick(sender: AnyObject) {
if let parentVC = self.parentViewController as? NewsController {
parentVC.newslists[loadsection][loadrow].liked = false
}
}
但这不起作用。
这里NewsController
和NewsDetailController
之间是否存在亲子关系?
如果是这样,为什么我的方法不起作用?
如果没有,我该如何处理?
答案 0 :(得分:11)
您应该使用self.presentingViewController
中的NewsDetailController
来获取NewsController
。来自文档:
使用presentViewController:animated:completion:方法以模态方式(显式或隐式)呈现视图控制器时,显示的视图控制器将此属性设置为呈现它的视图控制器。
答案 1 :(得分:0)
我这样做是为了推动我的搜寻:
if let presenter = self.navigationController?.viewControllers[0] as? MainViewController {
// access presenters members
}
就像这样,当我提出我的要求时:
if let presenter = self.presentingViewController?.children[0] as? MainViewController {
// access presenters members
}
如果您有多个子代或视图控制器索引,则应进行管理。我是单身,所以0可以解决问题。