[英]performSegueWithIdentifier doesn't work in a different ViewController
其中,几个自定义View Controller以编程方式嵌入到Scroll View中。 在其中一个按钮中,有一个按钮,应该触发一个按钮以显示“嘿”屏幕。
然后,我编写了以下代码:
@IBAction func addNewDateButtonDidTouched(sender :AnyObject) {
let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
let storyboardInit = mainStoryboard.instantiateViewControllerWithIdentifier("mainview")
storyboardInit.performSegueWithIdentifier("showNewDate", sender: self)
}
这个@IBAction
似乎重新加载了初始视图控制器并执行了segue修正(Xcode不返回任何错误)。 但是“嘿”屏幕未显示,并且其viewDidLoad()
也未加载。
有什么提示吗?
而不是打电话
storyboardInit.performSegueWithIdentifier("showNewDate", sender: self)
尝试
self.performSegueWithIdentifier("showNewDate", sender: self)
您代码中的storyboardInit
将实例化一个具有标识符“ mainview
”的UIViewController
。 但是,当您要求控制器执行检测时,此UIViewController
尚未添加到屏幕上。
所以,我不会那样做。 我想做的就是显示以下内容:
self.performSegueWithIdentifier
,只需在代码中执行以下操作: self.performSegueWithIdentifier
instantiateViewControllerWithIdentifier
,然后就做self.presentViewController
因此,要过渡到新控制器,您必须从当前控制器开始。
如果我正确理解您的ViewController层次结构...
因为包含触发segue的按钮的viewcontroller是在故事板中具有segue设置的viewcontroller的childviewcontroller,所以我认为您必须调用presentingViewController?.performSegueWithIdentifier("showNewDate", sender: self)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.