Ios 从modal segue Swift访问父视图
我有一个视图控制器-Ios 从modal segue Swift访问父视图,ios,swift,segue,parent-child,Ios,Swift,Segue,Parent Child,我有一个视图控制器-NewsController,它有一个进入newsdailcontroller 在newsdailcontroller中,我尝试运行以下函数: @IBAction func greenLikeClick(sender: AnyObject) { if let parentVC = self.parentViewController as? NewsController { parentVC.newslists[loadsection][loadrow
NewsController
,它有一个进入newsdailcontroller
在newsdailcontroller
中,我尝试运行以下函数:
@IBAction func greenLikeClick(sender: AnyObject) {
if let parentVC = self.parentViewController as? NewsController {
parentVC.newslists[loadsection][loadrow].liked = false
}
}
但这行不通
这里的NewsController
和NewsDetailController
之间是否存在父子关系
如果是这样,为什么我的方法不起作用
如果没有,我将如何处理此问题?您应该在
NewsDetailController
中使用self.presentingViewController
来获取您的NewsController
。从文件中:
使用presentViewController:animated:completion:方法以模式(显式或隐式)显示视图控制器时,显示的视图控制器将此属性设置为显示它的视图控制器
当我的赛格被推的时候,我就是这样做的:
if let presenter = self.navigationController?.viewControllers[0] as? MainViewController {
// access presenters members
}
当我的segue出现的时候:
if let presenter = self.presentingViewController?.children[0] as? MainViewController {
// access presenters members
}
如果有多个子级或ViewController索引,则应管理这些子级或ViewController索引。我的是单身,所以0成功了。我用
self.presentingViewController
替换了self.parentViewController
。。。不幸的是,没有运气。举一个简单的例子,这是有效的。你的音乐到底是什么类型的?它是一种现代的Present
segue。这会导致任何问题吗?很抱歉,如果你感到困惑的话,那么就换了账户。我的错。不,它很好,它应该是一个礼物。至少,您能给您的newsController一个标题并将其记录在您的NewsDetailController
中吗?使用presentingViewController.title?
我解决了问题presentingViewController
给了我一个主选项卡控制器,它小时候包含了newcontroller
。所以我说让childOfTab=parentVC.childViewControllers[0]作为!NewsController,并使用了此选项。谢谢你的帮助!