iOS 8.1
xCode 6.1.1
我的故事板是: 标签栏控制器 - >导航控制器(NC)1 - > ViewController(VC)1 - > NC2 - > VC2 - > NC3 - > VC3
从VC2到NC3显示细节segue。我在VC3中有一个取消按钮,可以解开到NC2 / VC2。
我已经将unwind方法添加到NC2和VC2的自定义类的标题和swift文件中,并按Ctrl +从取消按钮拖动到VC3退出。
我也尝试按住Ctrl键拖动到NC3出口或NC2出口
什么都没发生。任何想法?解决办法:
已经查看Unwind Segue in Xcode 6.1.1 with storyboard和Unwind Segue not working in iOS 8,但不知道我是否遗漏了任何内容。
修改 将println语句添加到unwind方法但没有打印,因此该方法不是调用。 VC2的头文件代码:
#ifndef SettingsViewController_h
#define SettingsViewController_h
#endif
@interface SettingsViewController (Workaround)
- (IBAction)unwindToSettings: (UIStoryboardSegue *)segue;
@end
VC2的快速代码部分
@objc(SettingsViewController) class SettingsViewController: UITableViewController{
@IBAction func unwindToSettings(segue:UIStoryboardSegue){
println("unwind")
}
}
答案 0 :(得分:0)
我的放松细分工作得很好。从VC3回来,你在VC2中的代码应该是这样的:
@IBAction func didFinishWithVC3(segue: UIStoryboardSegue) {
let controller = segue.sourceViewController as VC3
someVariableInVC2 = controller.someVariableInVC3 // If you need to get data from VC3 to VC2
}
请注意,您需要segue: UIStoryboardSegue
参数。
然后只需控制 - 从VC3中的“取消”按钮拖动到故事板中VC3上方的“退出”图标,然后选择“didFinishWithVC3”。
答案 1 :(得分:0)
我创建了一个具有相同结构的虚拟项目:Tab Bar Controller后跟导航控制器,它不起作用,所以我怀疑它与Tab Bar Controller和控制器的结构有关。
最终使用Present Modally segue和
dismissViewControllerAnimated(true, completion: nil)