Xcode 6.1.1中的Segue与故事板

我一直在阅读,展开segue的Xcode 6 bug。我正在使用Xcode 6.1.1,我用swift。

我使用导航控制器放置的“后退”button。 因此我不能cntrl拖动到退出图标。 此外,我不能从viewController图标拖到退出图标。

这是一个错误? 否则我错过了一些关于如何使用unwind segue的基础知识。 我怎样才能从故事板设置放松segues?

得到它的工作。 如果您从NavigationController或TabBarController(不确定TabBarController)展示,则需要inheritance导航控制器并将unwind segue添加到该控件。 在故事板不要忘记更改导航控制器的类。 我的视图层次是NavController – > TableController – > DetailController。 将自定义NavBar类的方法添加到你想要返回的VC中。 然后你可以按住ctrl-drag退出。 我认为这是一个错误,因为一旦它挂钩了,我能够删除子类并返回到股票NavigationController,它仍然工作。

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

要执行展开顺序,请转到要继续的视图控制器并添加以下function; (当然名字可以改变)

 @IBAction func unwindToMainMenu(segue: UIStoryboardSegue) { } 

一旦你添加了这个function,你将能够在故事板上的任何视图控制器中看到这个展开function。 只需右键单击任何视图控制器顶部的退出图标。 退出图标右键单击

如果你想用一个button进行放松,那么你可以按住unwindSegue +拖动button退出图标,并select你的unwindSegue函数。 完成!

用按钮放松

如果要以编程方式执行展开,请按住Ctrl +从viewController图标拖到退出图标,然后select展开function。

在这里输入图像说明

之后,打开“文档大纲”并单击“展开”。

在这里输入图像说明

去实用工具里面的属性检查器,给你的展开顺序一个标识符。

在这里输入图像说明

最后,像下面这样调用performSegueWithIdentifier函数。

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

希望有所帮助!

得到它在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. 在故事板中,findB,然后右键单击顶部的“退出”button,然后“呈现Segue”菜单将列出您在A中创build的unwindFromB

  3. 点击右侧的小号“​​+”号,并将其链接回B,select“手动”

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

我发现我不能从UITableViewCell 拖到故事板上View Controller上的Exit对象。

解决方法是在代码中添加一个合适的IBAction。 一旦IBAction存在,拖动目标将点亮。

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