更改App Delegate中的Root View Controller

时间:2016-09-26 19:04:55

标签: objective-c uinavigationcontroller appdelegate

我需要处理两件事

1)如果用户未登录我的应用程序,我需要显示LoginVC,然后显示passwordVC和VC3 ..

2)如果用户已经登录我需要显示密码VC然后显示VC3

对于方案 2 我已经用VC3创建了一个导航控制器,我为新创建的导航控制器提供了标识符。现在我又创建了一个 passwordVC 在第二种情况下提出。在VC3上显示新创建的密码屏幕。输入正确的密码后,我需要关闭新创建的 PasswordVC 并显示VC3。

我完成了1 St场景。我只是检查钥匙串,我离开了,因为我正在使用带导航控制器的LoginVC作为初始视图控制器。这是我的代码为1场景

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
KeychainItemWrapper *keyChain = [[KeychainItemWrapper alloc]initWithIdentifier:@"Login" accessGroup:nil];
NSString *str = [keyChain objectForKey:(__bridge id)(kSecAttrAccount)];
if (str.length == 0) {  
   //here i have commented those lines becausee i having initial view controller as navigation controller in my storyboard.
       //            self.window.rootViewController.storyboard;
       //            CognitoHomeViewController *Login = [[UIStoryboard storyboardWithName:@"Main" bundle:nil]instantiateViewControllerWithIdentifier:@"LoginVC"];
        //[self.window setRootViewController:Login];
     }
    else{

       PasscodePinViewController *PasscodePinViewController=[[PasscodePinViewController alloc]initWithNibName:@"PasscodePinViewController" bundle:nil];            
        [self presentviewcontroller:PasscodePinViewController];}

我还需要改变...... 对于第二种情况,我创建了导航控制器和新的PasswordVC。我正在使用钥匙串管理我的app委托中的2个场景。如果在钥匙串上存在用户名,我需要做第二个场景,如果不是第一个场景。

问题是我不知道如何在app delegateclass中执行第二个场景。请帮我这样做......

1 个答案:

答案 0 :(得分:0)

您根本不必在AppDelegate中执行此操作。创建一个WelcomeVC并使其成为根控制器并检查用户是否登录到欢迎VC中,并且您可以根据条件转到loginVC或passwordVC。

相关问题