ios - 关闭呈现的 View Controller 后推送 View Controller

标签 ios objective-c navigation pushviewcontroller presentviewcontroller

我有这个导航堆栈

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];

}

请帮助理解这种行为。我的错误在哪里?

最佳答案

来自Apple Documentation :

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/

相关文章:

ios - 自定义单元格中的选定行不会将完整数据从segue传递到另一个 View Controller

Javascript - 如何使用键盘箭头键更改对列表中链接的关注

html - 下拉导航菜单底部有 1 个无法解释的透明像素

ios - Apple 应用内购买 : How apple use the applicationusername to Detecting Irregular Activity?

ios - Xcode 自动布局 Storyboard预览不显示容器 View

文本字段内切换按钮的 IOS UI 测试用例

ios - 从 webservice 获取 unicode 字符并在 ios 应用程序中显示它们

iphone - 如何在单击按钮时显示 UISplitViewcontroller

android - 通过 Phonegap 的谷歌导航 Intent

sql - 我应该选择 Hiberlite 将 SQLite 集成到我的 Win/iOS 应用程序中吗?