Vad*_*dim 278

插入Segue名称以放松.
然后,- (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender.用你的segue识别.
smi*_*Bot 159
这是Objective C和Swift的完整答案:
1)IBAction在目标视图控制器中创建一个展开segue(您想要转到的位置).实施文件中的任何位置.
// Objective C
- (IBAction)unwindToContainerVC:(UIStoryboardSegue *)segue {
}
// Swift
@IBAction func unwindToContainerVC(segue: UIStoryboardSegue) {
}
Run Code Online (Sandbox Code Playgroud)
2)在源视图控制器(您正在调整的控制器)上,^ +从"活动名称"拖动到退出.您应该在弹出窗口中看到步骤1中创建的展开segue.(如果您没有看到它,请查看第一步).选择unwindToContainerVC:从弹出窗口或您命名方法的任何内容,将源控制器连接到展开IBAction.

3)在源视图控制器的故事板的文档大纲中选择segue(它将在底部附近列出),并为其指定标识符.

4)从源视图控制器使用此方法调用unwind segue ,替换unwind segue名称.
//目标C.
[self performSegueWithIdentifier:@"unwindToContainerVC" sender:self];
//斯威夫特
self.performSegueWithIdentifier("unwindToContainerVC", sender: self)
NB.在unwind方法上使用segue参数的sourceViewController属性来访问源控制器上的任何公开属性.另外,请注意框架处理解雇源控制器.如果您想确认这一点,请向源控制器添加一个dealloc方法,并使用一条日志消息,该消息一旦被杀死就应该触发.如果dealloc不起火你可能有一个保留周期.
Dea*_*ean 76
bradleygriffith的答案很棒.我采取了步骤10,并进行了简化截图.这是Xcode 6中的屏幕截图.
简单控制 - 从橙色图标拖动到红色"退出"图标,以在视图中创建一个没有任何操作/按钮的展开.

然后选择unwind segue并设置一些标识符以从代码中访问它.

在代码中,
[self performSegueWithIdentifier:@"unwindIdentifier" sender:self];
Run Code Online (Sandbox Code Playgroud)
小智 13
我用过[self dismissViewControllerAnimated: YES completion: nil];哪个会让你回复ViewController.
Vishal Chaudhry上面的回答对我有用.我还要补充一点,以便使用以下方法手动触发seque:
[self performSegueWithIdentifier:@"mySegueName" sender:self];
Run Code Online (Sandbox Code Playgroud)
在ViewController中你还必须在故事板中的ViewController的Scene下选择unwind segue,并在RHS的属性视图中确保Indentifier字段包含你在代码中引用的名字(上例中的"mySegueName") ).
如果省略此步骤,则上面的行将抛出一个异常,即seque名称未知.
| 归档时间: |
|
| 查看次数: |
110053 次 |
| 最近记录: |