清除iOS应用中的屏幕堆栈

时间:2012-11-18 20:25:07

标签: ios

我有 SplashScreen - >注册 - >登录 - >主屏幕屏幕。在MainScreen中,没有必要记住所有的屏幕堆栈(我的意思是我可以返回注册/登录屏幕,但我不应该有这种可能性)。如何关闭不必要的屏幕?在开发iOS UI时,这是一个好方法吗?

3 个答案:

答案 0 :(得分:3)

如果你正在使用UINavigationController:

 //Pop back to the root view controller
 [self.navigationController popToRootViewControllerAnimated:NO];

 //Allocate and init the new view controller to push to
 NewViewController *newVC = [[NewViewController alloc] init];

 //Push the new view controller
 [self.navigationController pushViewController:newVC animated:YES];

答案 1 :(得分:0)

如果您正在使用导航控制器将这些视图推送到视图控制器堆栈,那么这将是回弹到根视图控制器的一个好点。查看UINavigationController的文档。

但是,考虑到您正在尝试处理初始应用程序授权,更好的模式可能是将MainScreen视图控制器显示为根视图控制器,然后使用模态视图控制器堆栈来处理注册/登录。

tl; dr:您应该查看UINavigationController和UIViewController的文档。特别注意推视控制器和呈现模态视图控制器之间的区别。祝你好运!

答案 2 :(得分:0)

更简洁的方法,无需手动弹出和推动:

NSArray *vctrls = [NSArray arrayWithObjects:[MainViewController new]];
[navController setViewControllers:vctrls animated:YES];