在我的应用程序中,我有以下配置来打开我的视图控制器:
当我写“pushViewController”时,我使用导航控制器,当我写“present”时,我使用presentModalViewController
。
firtsView -> (pushviewcontroller) -> secondOneView -> (present) -> thirdOneView -> (present) -> fourthView
firstView -> (pushviewcontroller) -> secondTwoView -> (present) -> thirdTwoView
这是我的应用程序组织我的视图控制器的方案。然后我的问题是:
从“fourthView”(即从“fourthView”返回)到“secondTwoView”的方式是什么?
有办法吗?
答案 0 :(得分:5)
是的。
UIViewController
提供了不同的方法来解除视图控制器,具体取决于您是否以模态方式呈现它。这些是:
-(void)dismissModalViewControllerAnimated:(BOOL)animated; // modal
-(void)dismissViewControllerAnimated:(BOOL)flag
completion:(void (^)(void))completion;
你需要逐一解雇他们。 另外,花点时间阅读Apple的View Programming Guide。
使用UINavigationController
您可以使用以下命令弹出到任何视图控制器:
-(NSArray *)popToViewController:(UIViewController *)viewController
animated:(BOOL)animated;
或者,另一种方法让你只弹出一个:
-(UIViewController *)popViewControllerAnimated:(BOOL)animated;
答案 1 :(得分:0)
如果你使用presentViewController
我认为你必须逐一解除viewController
但是如果你只是导航控制器,那么你可以弹出到你想要的viewController
答案 2 :(得分:0)
如果你想要一些动画。我建议使用CoreAnimation手动完成。由于
-(void)dismissViewControllerAnimated:(BOOL)flag
completion:(void (^)(void))completion;
仅在iOS5之后可用。