无法连接故事板放松Segue

时间:2012-10-09 03:50:43

标签: ios xcode uistoryboard

我正在尝试创建一个展开segue,但是当按住Ctrl键拖动时,没有任何内容可以连接到它。此外,当我右键单击“退出”图标时,没有可用选项。

enter image description here

有什么想法吗?

4 个答案:

答案 0 :(得分:66)

您需要在视图控制器上定义一个IBAction,其参数类型为“UIStoryboardSegue *”。

这样的事情:

@interface MyViewController
...
- (IBAction)unwindFromConfirmationForm:(UIStoryboardSegue *)segue {
}
...
@end

Swift 3版本

@IBAction func unwindToViewController(segue: UIStoryboardSegue) {

    //code

}

DoruChidean https://stackoverflow.com/a/46199117/250190

中提供

答案 1 :(得分:19)

只是为了澄清,要在故事板中将其链接起来,将上述方法添加到“想要放松的视图控制器”之后,您需要从“按钮中拖动一个segue”或“你想放松的视图控制器”中的任何内容从“向下到它自己的小绿色”EXIT“图标在底栏中。

应该有一个弹出窗口链接到“ - unwindFromConfirmationForm”。

一旦完成,unwind segue应该可以工作。


加入特拉维斯的优点:完全明确:

假设您刚开始尝试使用故事板,那么您(a)制作了一个新的iOS7 Xcode项目,(b)制作了一个带有一个导航控制器的故事板,然后(c)您制作了五个或六个视图控制器。您的目标是能够使用展开在六个视图控制器之间前后移动。 {通过控制 - 从一个按钮拖动到下一个按钮来“前进”是微不足道的。}

现在,此时此刻:所有六个视图控制器确实是“默认”类“ViewController”。请注意,Xcode(有点无意义)为您提供了ViewController.h和ViewController.m文件。

此外,所有六个“简单示例”视图确实只是使用该文件ViewController.m。所以,非常简单,如果你添加这个:

-(IBAction)unwindUnused:(UIStoryboardSegue *)segue
    {
    NSLog(@"I did an unwind segway! Holy crap!");
    }

对于那个“存根”文件ViewController.m - 事实上,你的六个视图中的每一个现在都“工作”,你将能够拖到臭名昭着的小绿色“退出“按钮。就这么简单。

现在只是TBC通常在一个真实的项目中,你永远不会使用默认的“ViewController.m”文件。所以,请到这里:

https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOS/SecondTutorial.html

并找到精确的“创建自定义视图控制器”,如果您是新手,它当然会详细解释该过程。

但是,再次,如果你只是愚弄并且想让绿色按钮用于展开,只需将代码片段放在“ViewController.m”存根文件中,然后就可以了。 (记住,在“现实生活中”你会在每个自定义屏幕中放置一个自定义的调用 - 可能处理数据等等。)希望它有所帮助!!

Bonus factoid:请注意,当你刚刚测试时,“返回”按钮会自动出现在导航栏上! (即使你没有添加unwind stub方法。)

答案 2 :(得分:1)

赞助乔恩赫斯! 这是快速3等效

@IBAction func unwindToViewController(segue: UIStoryboardSegue) {

    //code

}

答案 3 :(得分:0)

您使用的是xcode6-beta版本吗?在beta 1-3中是一个错误,它阻止界面构建器检测展开的segues。在xcode6-beta4中,这个bug已得到修复。