我已经看到了几个问这个问题的问题,但答案似乎并不确定。使用XCode 7和iOS 9,我想从任意数量的子视图控制器中展开主菜单视图控制器。我希望以下内容可以满足我的需求:
@IBAction func returnToMenuScreen(segue: UIStoryboardSegue) {
let departureController = segue.sourceViewController
if departureController.title == "ChildViewController" {
print("ChildViewController")
self.performSegueWithIdentifier("NewSegue", sender: departureController)
}
}
调用print函数,但不执行performSegueWithIdentifier。类似的问题似乎指出了时间问题,但我没有运气。
总结一下,如何在父视图控制器的子视图控制器之间导航?我想放松到父,然后segue到任意子视图控制器。任何和所有的帮助表示赞赏!
答案 0 :(得分:1)
我试图了解您的问题,但您的数据不足以找到问题的解决方案。可能是你没有正确连接正确的退绕功能。最好关注一些关于展开segues的教程。这是苹果的链接,它描述了放松segue。转到此给定链接的底部。然后你可以找到如何正确解开segue。希望这个链接有助于找到你的问题。
****更新****
尝试此解决方案: -
@IBAction func unwindToMainMenu(segue: UIStoryboardSegue) {
dispatch_after(1, dispatch_get_main_queue()) { () -> Void in
self.performSegueWithIdentifier("viewController", sender: self)
}
}
或者你可以在viewWillAppear中引入一个变量来处理segue。
PUT
var show = false // IN UNWIND VIEW CONTROLLER
在prepareForSegue中更改fromCamera = true
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showDetails" {
let MainViewController = segue.destinationViewController as? JobInformationViewController
MainViewController!.show= true
}
}
并像这样使用
override func viewDidAppear(animated: Bool) {
if show {
self.performSegueWithIdentifier("categorySelection", sender: self)
self.show= false
}
}