![这是我的视图控制器连接外观] [1]
http://i58.tinypic.com/2mepfv4.png
![我必须通过编程方式从视图控制器A转到VC-B,因为它应该满足基于设备ID的登录认证。让我清楚地解释一下。当用户安装我的应用程序时,他应该设置他的电子邮件并验证。验证后他应该转移到VC-B。移动VC-B后,Viewcontroller-A再次打开应用程序时不应再打开。类似于杀死视图控制器-A,并在打开应用程序时加载VC-B。
问题1-如何完全杀死View controller-A。
第二件事我不想在View控制器-A上显示导航栏,但是在View VC-B,VC-C和VC-D上等等。我想显示导航栏,因为用户应该能够来回移动。这就是我再次在VC-B之前添加导航控制器的原因。
如果我在VC-B上无法显示导航栏,直到我在视图控制器A之前启用导航控制器上的显示导航栏。
问题2 - 如何在VC-B上启用导航栏,但不在Viewcontroller-A上启用导航栏。
] [1] 这是代码我如何从View控制器A移动到VC-B。
if (alertView.tag == 99) {
if(buttonIndex == 0){
VC-B *vcb =
[self.storyboard instantiateViewControllerWithIdentifier:@"VC-B"];
[self.navigationController pushViewController:vcb animated:YES];
} } 帮我指出正确的方向。
答案 0 :(得分:0)
你不一定需要杀死A视图控制器,我认为这不是一个好主意。
您可以通过在成功验证用户后在NSUserDefaults中设置信息来解决此问题。然后导航到B视图控制器。
在方法中:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
始终检查NSUserDefaults中是否设置了验证标志,如果是,则将导航控制器的rootViewController设置为B视图控制器,否则设置为A视图控制器。
要隐藏/取消隐藏导航栏,您可以使用以下代码从任何视图控制器(假设它们属于导航控制器)执行此操作:
self.navigationController.navigationBar.hidden = YES; // or NO
此代码可以在视图控制器类中编写,在viewDidLoad,viewWillAppear:,viewDidAppear:中,或者您需要的任何位置。
如果你想要一个漂亮的动画来隐藏/取消隐藏,还有一些方法。