我有这个导航堆栈
RootVC ---> VC1 -->(演示)-> ModalVC
我有VC2(不在导航堆栈中)。
在呈现 ModalVC 时,我想单击 ModalVC 中的按钮来关闭 ModalVC,然后在 VC1 之后将 VC2 插入导航堆栈一键点击。它应该看起来像这样:
RootVC ---> VC1 ---> VC2
我尝试了很多方法来实现它,但只有当我返回到我的RootVC时才触发事件。
我尝试与代表一起完成:
在ModalVC中点击:
[self dismissViewControllerAnimated:YES completion:^{
if ([self.delegate respondsToSelector:@selector(dismissAndPush:)]) {
[self.delegate performSelector:@selector(dismissAndPush:) withObject:VC2];
}
}];
在VC1中:
- (void)dismissAndPush:(UIViewController *)vc {
[self.navigationController pushViewController:vc animated:NO];
}
请帮助理解这种行为。我的错误在哪里?
最佳答案
The presenting view controller is responsible for dismissing the view controller it presented.
所以,VC1 应该解雇 ModalVC,尝试这样做
点击时的 ModalVC:
if ([self.delegate respondsToSelector:@selector(dismissAndPush:)]) {
[self.delegate performSelector:@selector(dismissAndPush:) withObject:VC2];
}
在 VC1 中:
- (void)dismissAndPush:(UIViewController *)vc {
[self dismissViewControllerAnimated:YES completion:^{
[self.navigationController pushViewController:vc animated:NO];
}];
}
关于ios - 关闭呈现的 View Controller 后推送 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28451295/