我正在尝试创建一个展开segue,但是当按住Ctrl键拖动时,没有任何内容可以连接到它。此外,当我右键单击“退出”图标时,没有可用选项。
有什么想法吗?
答案 0 :(得分:66)
您需要在视图控制器上定义一个IBAction,其参数类型为“UIStoryboardSegue *”。
这样的事情:
@interface MyViewController
...
- (IBAction)unwindFromConfirmationForm:(UIStoryboardSegue *)segue {
}
...
@end
Swift 3版本
@IBAction func unwindToViewController(segue: UIStoryboardSegue) {
//code
}
中提供
答案 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”文件。所以,请到这里:
并找到精确的“创建自定义视图控制器”,如果您是新手,它当然会详细解释该过程。
但是,再次,如果你只是愚弄并且想让绿色按钮用于展开,只需将代码片段放在“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已得到修复。