我已经看到了几个问这个问题的问题,但是答案似乎并没有定论。将XCode 7与iOS 9结合使用时,我想从任意数量的子视图控制器退回到主菜单视图控制器。我期望可以执行以下操作:

@IBAction func returnToMenuScreen(segue: UIStoryboardSegue) {
    let departureController = segue.sourceViewController
    if departureController.title == "ChildViewController" {
        print("ChildViewController")
        self.performSegueWithIdentifier("NewSegue", sender: departureController)
    }
}


打印函数被调用,但是performSegueWithIdentifier没有被调用。类似的问题似乎指向时间问题,但我没有运气。

总而言之,如何在父视图控制器的子视图控制器之间导航?我想放松对父母,然后选择到一个任意的子视图控制器。任何和所有帮助表示赞赏!

最佳答案

我试图了解您的问题,但是您的数据不足以找到解决问题的方法。可能是您未正确连接放松功能。因此,最好遵循一些有关放宽序列的教程。这是苹果的链接,它描述了放松的时间。转到此给定链接的底部。然后,您可以找到如何正确放松搜寻的方法。希望此链接将有助于找到您的问题。


  https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/DevelopiOSAppsSwift/Lesson8.html


****更新****

试试这个解决方案:

@IBAction func unwindToMainMenu(segue: UIStoryboardSegue) {
dispatch_after(1, dispatch_get_main_queue()) { () -> Void in
    self.performSegueWithIdentifier("viewController", sender: self)
 }
}


或者,您可以在viewWillAppear中引入一个变量来处理segue。



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
   }
 }

07-27 19:01