在presentModalViewController之后使用pushViewController

Mad*_*bæk 6 iphone cocoa-touch

在我的应用程序中,我有BaseViewController(NavigationController)作为根控制器.我通常使用以下代码进行导航:

[self.navigationController pushViewController:childController animated:YES];
Run Code Online (Sandbox Code Playgroud)

但是在其中一个动作中,我希望下一个视图可以动画,但是我使用:

[self presentModalViewController:childController animated:YES];
Run Code Online (Sandbox Code Playgroud)

到目前为止一切都有效.在模态视图中,我想要推送另一个控制器,但这似乎不起作用.我尝试过以下方法:

// self.navigationController is null, so this doesn't work
[self.navigationController pushViewController:childController animated:YES];

// self.parentViewController is the BaseViewController and not null, but this 
// won't work either. This also generates a warning "UIViewController' may not 
// respond to '-pushViewController:animated:"
[self.parentViewController pushViewController:childController animated:YES];
Run Code Online (Sandbox Code Playgroud)

两种情况都没有发生.当模态视图仍然显示时,pushViewController是否被禁用?如果是这样,我还有另一种方式:

  1. 从下到上为下一个控制器设置动画
  2. 使用后退按钮从左到右为下一个控制器设置动画.后退按钮可以带您返回上一个(模态)视图.

Hoa*_*ham 4

如果您呈现ModelViewController,那么您需要先关闭它,然后才能调用导航控制器的方法,否则您必须将此视图控制器放入导航堆栈中,以便将另一个视图控制器放在其顶部。