我有四个视图控制器:
-
VC1
-
包含childViewController(VC3)的VC2
-
VC4
这是工作流程:
-
VC1显示(推送)VC2,同时加载VC3 .
-
a . 可以使用unwind segue返回到VC1,它可以正常工作 .
-
b . VC3有一些显示(推送)VC4的按钮 .
-
VC4有一个可选择的列表 .
我想回到选定的行到VC1,所以我实现了一个从VC4返回到VC2的展开方法,然后,在unwindToVC2方法中,我调用另一个segue:
[self performSegueWithIdentifier:@"returnToVC1"];
但是这个segue没有被调用或者它没有工作 .
试图调试问题,应用程序完美地回到VC2,它调用“returnToVC1”segue但没有任何ocurrs,它不会抛出任何错误 .
在搜索修复程序时,我发现在呈现的视图消失之前调用了unwind方法 . 这是问题的原因吗?是不是可以展开VC2,因为VC4仍然可见?
有没有办法找回两个View Controller发送信息?
谢谢
1 回答
正如@rdelmar所说,我唯一需要做的就是放松到VC1 . 我来自Android和我,虽然这是不可能的,因为VC2在堆栈中的其他VC中间 .
另一个解决方案,不像第一个那样精确,是在viewDidAppear中执行VC2展开segue,而不是unwind方法 . 此修复工作但它显示第二个视图控制器一段时间 .
问题的原因是当执行它的ViewController不可见时,无法调用performSegue .
谢谢@rdelmar