我正在尝试创建一个展开 segue,但是当 ctrl+拖动时没有任何东西可以连接到它。此外,当我右键单击“退出”图标时,没有可用选项。
有任何想法吗?
我正在尝试创建一个展开 segue,但是当 ctrl+拖动时没有任何东西可以连接到它。此外,当我右键单击“退出”图标时,没有可用选项。
有任何想法吗?
您需要在视图控制器上定义一个 IBAction,该控制器采用“UIStoryboardSegue *”类型的参数。
像这样的东西:
@interface MyViewController
...
- (IBAction)unwindFromConfirmationForm:(UIStoryboardSegue *)segue {
}
...
@end
斯威夫特 3 版本
@IBAction func unwindToViewController(segue: UIStoryboardSegue) {
//code
}
只是为了澄清,为了在情节提要中将其链接起来,在将上述方法添加到“您想要展开的视图控制器”之后,您需要从按钮或“您想要展开的视图控制器”中的任何内容向下拖动到它自己的底部栏中的绿色小“退出”图标。
应该有一个弹出窗口链接到“- unwindFromConfirmationForm”。
完成后, unwind segue 应该可以工作。
只是添加到 Travis 的优点:要完全清楚:
假设您刚刚开始尝试使用故事板,因此您 (a) 制作了一个新的 iOS7 Xcode 项目,并且 (b) 制作了带有一个导航控制器的故事板,然后 (c) 您制作了五六个视图控制器。您的目标是能够使用 unwinds 在六个视图控制器之间进行切换。{通过控制从一个按钮拖动到下一个按钮来“前进”是微不足道的。}
现在,此时:所有六个视图控制器,确实将是“默认”类“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”存根文件中,然后你就走了。(请记住,在“现实生活”中,您会在每个自定义屏幕中放置一个自定义的此类调用 - 可能处理数据等)希望它有所帮助!
额外的事实:请注意,无论如何,当您像这样进行测试时,“返回”按钮会自动出现在导航栏上!(即,即使您不添加展开存根方法。)
为乔恩·赫斯点赞!这是 swift 3 的等价物
@IBAction func unwindToViewController(segue: UIStoryboardSegue) {
//code
}
您正在使用 xcode6-beta 版本吗?在 beta 1-3 中是一个错误,它会阻止界面生成器检测展开 segues。在 xcode6-beta4 中,此错误已得到修复。