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