0

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

4

3 回答 3

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];
于 2012-11-18T20:29:37.063 回答
0

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

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

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

于 2012-11-18T20:31:29.483 回答
0

一种更清晰的方法,无需手动弹出和推送:

NSArray *vctrls = [NSArray arrayWithObjects:[MainViewController new]];
[navController setViewControllers:vctrls animated:YES];
于 2012-11-18T20:32:16.227 回答