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. 请按照以下步骤设置步骤:
-
在A中,写一个IBAction
-(IBAction)unwindFromB:(UIStoryboardSegue *) unwindSegue { ViewControllerB *vc = [unwindSegue sourceViewController]; // get whatever data you want to pass back from B }
-
在故事板中,findB,然后右键单击顶部的“退出”button,然后“呈现Segue”菜单将列出您在A中创build的unwindFromB
-
点击右侧的小号“+”号,并将其链接回B,select“手动”
-
如果您需要以编程方式调用它,请不要忘记设置unwind segue的标识符。
我发现我不能从UITableViewCell 拖到故事板上View Controller上的Exit
对象。
解决方法是先在代码中添加一个合适的IBAction。 一旦IBAction存在,拖动目标将点亮。
-(IBAction)prepareForUnwind:(UIStoryboardSegue *)segue { }