0

我看到有几个问题问这个问题,但答案似乎没有定论。在 iOS 9 中使用 XCode 7,我想从任意数量的子视图控制器展开到主菜单视图控制器。我希望像下面这样来做我需要的事情:

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

调用了 print 函数,但没有调用 performSegueWithIdentifier。类似的问题似乎指向时间问题,但我没有运气。

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

4

1 回答 1

1

我试图理解您的问题,但是您的数据不足以找到解决问题的方法。可能是您没有正确连接展开功能。所以最好遵循一些关于 unwind segues 的教程。这是apple的链接,描述了unwind segue。转到此给定链接的底部。然后您可以了解如何正确展开 segue。希望此链接有助于找到您的问题。

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
   }
 }    
于 2015-11-18T04:57:05.147 回答