当我调用presentModalViewController时,当前的viewController会发生什么

时间:2011-11-09 22:07:39

标签: iphone objective-c uiviewcontroller presentmodalviewcontroller

我正在为iphone开发应用程序,我使用

[self presentModalViewController:aViewControllerInitializateBefore animated:YES];

你能告诉我当我使用它时当前的viewController会发生什么吗?

1 个答案:

答案 0 :(得分:2)

当前视图控制器停留在模态视图控制器的“下方”,并在您调用

时重新出现
- (void)dismissModalViewControllerAnimated:(BOOL)animated

在模态视图或父/呈现视图控制器上(因为父/呈现视图控制器的视图不再可见,当系统需要内存时可以卸载它的视图,并在解除时重新加载)。

从这个方法的文档:

  

父视图控制器负责解除模态   查看它使用的控制器   presentModalViewController:animated:方法。如果你调用这个方法   然而,在模态视图控制器本身,模态视图   控制器自动将消息转发到其父视图   控制器。

     

如果你连续出现几个模态视图控制器,那么   构建一组模态视图控制器,在视图上调用此方法   堆栈中较低的控制器会解除其直接的子视图   控制器和堆栈上该子节点上方的所有视图控制器。   发生这种情况时,只有最顶层的视图在动画中被解除   时尚;任何中间视图控制器都可以从中删除   堆。最顶层的视图使用其模态转换被忽略   样式,可能与其他视图控制器使用的样式不同   在堆栈中较低。

另请注意iOS 5中的更改

  

在iOS 5.0之前,如果视图没有父视图控制器和   正在以模态呈现,正在呈现的视图控制器   它会被退回。这已不再是这种情况。你可以得到   使用presentsViewController呈现视图控制器   属性。