我一直在阅读在Xcode 6中使用Xcode 6.1.1并使用swift来解开segue的问题。
我使用"返回"导航控制器放置的按钮。因此,我无法按住拖动到退出图标。此外,我无法从viewController图标拖动到退出图标。
这是一个错误吗?或者我错过了一些关于如何使用unwind segue的基本知识。 如何从故事板中设置展开细分?
答案 0 :(得分:9)
我想提供一个详细的答案:
要执行展开segue,请转到要转移到的视图控制器并添加以下功能; (名称可以改变)
@IBAction func unwindToMainMenu(segue: UIStoryboardSegue) {
}
添加此功能后,您将能够从故事板上的任何视图控制器中看到此展开功能。只需右键单击任何视图控制器顶部的退出图标。
如果您想使用按钮进行放松,则可以从按钮中按住+拖动以退出图标,然后选择unwindSegue
功能。完成!
如果要以编程方式执行展开,则cntrl +从viewController图标拖动到退出图标并选择展开功能。
然后,打开文档大纲并单击展开segue。
转到Utilities中的Attributes Inspector,并为展开segue提供一个标识符。
最后,调用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.展开以下设置步骤:
在A中,写一篇IBAction
-(IBAction)unwindFromB:(UIStoryboardSegue *) unwindSegue
{
ViewControllerB *vc = [unwindSegue sourceViewController];
// get whatever data you want to pass back from B
}
在情节提要中,找到B并右键单击“退出”按钮。按钮在顶部,然后是“呈现Segue”#39;菜单将列出您刚刚在A
点击小' +'向右移动并将其链接回B,选择'手动'
如果您需要以编程方式调用它,请不要忘记设置展开segue的标识符。
答案 3 :(得分:0)
我发现无法将UITableViewCell中的拖动到故事板上View Controller上的Exit
对象。
解决方案是首先在代码中添加适当的IBAction。一旦存在IBAction,拖动目标就会亮起。
-(IBAction)prepareForUnwind:(UIStoryboardSegue *)segue {
}