Ios dismissViewController工作不正常

Ios dismissViewController工作不正常,ios,cocoa-touch,uiviewcontroller,Ios,Cocoa Touch,Uiviewcontroller,下面是我的导航控制器的层次结构 MainViewController | | DetailViewController 然后我在DetailViewController上执行以下操作 [self presentViewController:reminderController animated:YES completion:nil]; 在导航到提醒服务控制器后,有时我会 [self dismissViewControllerAnimated:YES com

下面是我的导航控制器的层次结构

MainViewController
      |
      |
      DetailViewController
然后我在DetailViewController上执行以下操作

[self presentViewController:reminderController animated:YES completion:nil];
在导航到提醒服务控制器后,有时我会

[self dismissViewControllerAnimated:YES completion:nil];
但是,它将我带回MainViewController,而不是DetailViewController

[self presentViewController:reminderController animated:YES completion:nil];
真奇怪。对这个问题有什么想法吗

编辑:


我之所以在DetailViewController上执行
presentViewController:reminderController动画:完成:
,是因为reminderController用于发送提醒。就像goole应用程序或其他应用程序一样,在发送某物时,我们使用的是presentViewController。

而不是使用
dismissViewController:animated:
使用

[self.navigationController popViewControllerAnimated:YES];
dismissViewController:animated
删除其中的所有
UIViewController
s

如果阅读UIViewController和UINavigationController引用,您将省去很多麻烦。两次;)


有关更多详细信息,请参阅。

以下是有关
UIViewController
类的文档示例:

呈现视图控制器负责解除其呈现的视图控制器。如果对显示视图控制器本身调用此方法,它会自动将消息转发给显示视图控制器

如果连续呈现多个视图控制器,从而构建呈现视图控制器的堆栈,则在堆栈中较低的视图控制器上调用此方法将取消其直接子视图控制器以及堆栈中该子视图控制器上方的所有视图控制器。当这种情况发生时,只有最上面的视图以动画方式被取消;只需从堆栈中删除任何中间视图控制器。最上面的视图使用其模式转换样式关闭,该样式可能与堆栈中较低的其他视图控制器使用的样式不同


因此,我认为您应该首先使用segue来推送您的
DetailViewController
,然后以模式呈现
提醒控制器
,您稍后可以使用
dismissViewControllerAnimated:completion:
而不关闭
DetailViewController

为什么不使用推送和弹出视图控制器??如何从MainViewController中显示DetailViewController?@X-Factor+@c.cam:请参阅OP。我刚刚编辑了我告诉您不要这样做的原因取消ViewControlleranimated,改为使用pushviewcontroller和popviewcontroller.hmmm。。。那就行了。一定是什么地方的设置有问题。你能描述一下你在故事板中做了什么吗?你不能使用
[self.navigationController popViewControllerAnimated:YES]关于OP,因为我在DetailViewController上使用了
presentViewController:MemberController动画:完成:
。这是不正确的。如果(以模式)显示视图控制器,则可以使用dismissViewControllerAnimated:completion:将其关闭。OP的项目肯定还有别的事情。@rdelmar:对不起,我搞糊涂了。。为什么我错了。OP正在使用模态显示视图。@ttran,我的评论是针对X-Factor的,不是针对您的。