使用故事板非常简单。你只需将动作拖到“退出”。但是如何从代码中调用它呢?
当前回答
创建一个手动segue (ctrl-drag from File 's Owner to Exit), 选择它在左侧控制器菜单下面绿色退出按钮。
插入要unwind的Segue名称。
然后,- (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender.与您的续集识别。
其他回答
Swift 4.2, Xcode 10+
对于那些不知道如何通过故事板建立风险投资的人(那些从搜索“程序化”+“unwind segue”中得到这个问题的人)。
鉴于你不能通过编程方式设置unwind segue,最简单的纯编程解决方案是调用:
导航控制器?。popToRootViewController(动画:真)
它会弹出堆栈上的所有视图控制器回到你的根视图控制器。
要从导航堆栈中弹出最顶层的视图控制器,使用:
导航控制器?。会被(动画:真)
Vishal Chaudhry的回答对我很有用。我还会添加,为了手动触发seque使用:
[self performSegueWithIdentifier:@"mySegueName" sender:self];
在ViewController中,你还必须在故事板中ViewController的场景下选择unwind segue,并在RHS的属性视图中确保标识符字段包含你在代码中引用的名称(在上面的例子中是“mySegueName”)。
如果省略此步骤,上面的行将抛出一个异常,表示序列名未知。
创建一个手动segue (ctrl-drag from File 's Owner to Exit), 选择它在左侧控制器菜单下面绿色退出按钮。
插入要unwind的Segue名称。
然后,- (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender.与您的续集识别。
我使用[self disdisviewcontrolleranimated: YES completion: nil];它会将你返回到调用ViewController。
供你参考:为了让@Vadim的答案与视图控制器中调用的手动unwind seque动作一起工作,你必须放置命令:
[self performSegueWithIdentifier:(NSString*) identifier sender:(id) sender];
在被重写的类方法viewDidAppear内部,如下所示:
-(void) viewDidAppear:(BOOL) animated
{
[super viewDidAppear: animated];
[self performSegueWithIdentifier:@"SomeSegueIdentifier" sender:self];
}
如果你把它放在其他ViewController方法中,比如viewDidLoad或viewWillAppear,它会被忽略。
推荐文章
- iPhone上UIView和UILabels的渐变
- keychain上的分发证书中缺少私钥
- 在实现API时,我如何避免在块中捕获自我?
- 如何创建一个Swift Date对象?
- Xcode 4在目标设备上说“finished running <my app>”——什么都没有发生
- 从另一个应用程序打开设置应用程序
- 快速提取正则表达式匹配
- 如何应用梯度的背景视图的iOS Swift应用程序
- 图书馆吗?静态的?动态吗?或框架?另一个项目中的项目
- 如何用SwiftUI调整图像大小?
- Xcode 6 gitignore文件应该包括什么?
- 如何在iPhone/iOS上删除电话号码的蓝色样式?
- 检测视网膜显示
- 如何在UIImageView中动画图像的变化?
- 如何从iPhone访问SOAP服务