从modal segue Swift访问父视图

时间:2015-09-03 10:02:34

标签: ios swift segue parent-child

我有一个视图控制器 - NewsController,其模态segue转到NewsDetailController

NewsDetailController中我试图运行以下功能:

@IBAction func greenLikeClick(sender: AnyObject) {

    if let parentVC = self.parentViewController as? NewsController {
        parentVC.newslists[loadsection][loadrow].liked = false
    }
}

但这不起作用。

这里NewsControllerNewsDetailController之间是否存在亲子关系?

如果是这样,为什么我的方法不起作用?

如果没有,我该如何处理?

2 个答案:

答案 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可以解决问题。