IOS:打开和关闭一些视图控制器

Cra*_*Dev 4 xcode uiviewcontroller uinavigationcontroller presentmodalviewcontroller ios

在我的应用程序中,我有以下配置来打开我的视图控制器:

当我写"pushViewController"时,我使用导航控制器,当我写"present"时,我使用了一个presentModalViewController.

firtsView -> (pushviewcontroller) -> secondOneView -> (present) -> thirdOneView -> (present) -> fourthView

firstView -> (pushviewcontroller) -> secondTwoView -> (present) -> thirdTwoView 
Run Code Online (Sandbox Code Playgroud)

这是我的应用程序来组织我的视图控制器的方案.然后我的问题是:

什么是从返回的路上"fourthView"(也就是,当我去从后"fourthView"),以"secondTwoView"

有办法吗?

小智 5

是的,有.

UIViewController取决于如果您呈现它有模式或不提供不同的方法来解雇一个视图控制器.这些是 :

-(void)dismissModalViewControllerAnimated:(BOOL)animated; // modal
-(void)dismissViewControllerAnimated:(BOOL)flag
                          completion:(void (^)(void))completion;
Run Code Online (Sandbox Code Playgroud)

你需要逐个解雇它们.另外,花点时间阅读Apple 的View Programming Guide.

使用UINavigationController你可以弹出到任何视图控制器使用:

-(NSArray *)popToViewController:(UIViewController *)viewController
                       animated:(BOOL)animated;
Run Code Online (Sandbox Code Playgroud)

或者,另一种方法让你只弹出一个:

-(UIViewController *)popViewControllerAnimated:(BOOL)animated;
Run Code Online (Sandbox Code Playgroud)