使用故事板解开Xcode 6.1.1中的Segue

时间:2014-12-04 13:45:34

标签: ios xcode xcode6

我一直在阅读在Xcode 6中使用Xcode 6.1.1并使用swift来解开segue的问题。

我使用"返回"导航控制器放置的按钮。因此,我无法按住拖动到退出图标。此外,我无法从viewController图标拖动到退出图标。

这是一个错误吗?或者我错过了一些关于如何使用unwind segue的基本知识。 如何从故事板中设置展开细分?

4 个答案:

答案 0 :(得分:9)

我想提供一个详细的答案:

要执行展开segue,请转到要转移到的视图控制器并添加以下功能; (名称可以改变)

@IBAction func unwindToMainMenu(segue: UIStoryboardSegue) {

}

添加此功能后,您将能够从故事板上的任何视图控制器中看到此展开功能。只需右键单击任何视图控制器顶部的退出图标。exit icon right click

如果您想使用按钮进行放松,则可以从按钮中按住+拖动以退出图标,然后选择unwindSegue功能。完成!

Unwind with Button

如果要以编程方式执行展开,则cntrl +从viewController图标拖动到退出图标并选择展开功能。

enter image description here

然后,打开文档大纲并单击展开segue。

enter image description here

转到Utilities中的Attributes Inspector,并为展开segue提供一个标识符。

enter image description here

最后,调用performSegueWithIdentifier函数,如下所示;

self.performSegueWithIdentifier("goToMainMenu", sender: self)

希望有所帮助!

答案 1 :(得分:3)

搞定了。如果您使用的是NavigationController或TabBarController(不确定TabBarController),则需要子类化导航控制器并将unwind segue添加到该控制器。在故事板中不要忘记更改导航控制器的类。我的视图层次结构是NavController - > TableController - > DetailController。将方法添加到自定义NavBar类后,将其添加到要返回的VC。然后,您可以按住Ctrl键拖动退出。我认为这是一个错误,因为一旦它被连接起来我就能够删除子类并返回库存NavigationController它仍然有用。

答案 2 :(得分:1)

使用Xcode 6.2。我的情况是ViewController A以模态方式呈现B.展开以下设置步骤:

  1. 在A中,写一篇IBAction

    -(IBAction)unwindFromB:(UIStoryboardSegue *) unwindSegue 
    {
      ViewControllerB *vc = [unwindSegue sourceViewController];
      // get whatever data you want to pass back from B
    }
    
  2. 在情节提要中,找到B并右键单击“退出”按钮。按钮在顶部,然后是“呈现Segue”#39;菜单将列出您刚刚在A

  3. 中创建的unwindFromB
  4. 点击小' +'向右移动并将其链接回B,选择'手动'

  5. 如果您需要以编程方式调用它,请不要忘记设置展开segue的标识符。

答案 3 :(得分:0)

我发现无法将UITableViewCell中的拖动到故事板上View Controller上的Exit对象。

解决方案是首先在代码中添加适当的IBAction。一旦存在IBAction,拖动目标就会亮起。

-(IBAction)prepareForUnwind:(UIStoryboardSegue *)segue {

}