Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 故事板中的不同流程_Ios_Objective C_Uiviewcontroller_Storyboard_Appdelegate - Fatal编程技术网

Ios 故事板中的不同流程

Ios 故事板中的不同流程,ios,objective-c,uiviewcontroller,storyboard,appdelegate,Ios,Objective C,Uiviewcontroller,Storyboard,Appdelegate,我有一个关于iOS故事板的问题。 在我的故事板中,我有我的流程: 导航控制器; 登录视图控制器; 局部视图控制器; 如果没有有效的用户会话,则这是常规流。 启动应用程序时,我需要检查是否存在有效的用户会话。在这种情况下,我需要直接可视化3°详图视图控制器 我不确定,但我认为我需要检查AppDeGate中的用户会话。在这种情况下,如何直接加载3°视图控制器?解决方案1 我认为您可以做的是根本不检查有效会话。以下是我的想法 1创建一个名为isUserSignedIn的BOOL,该BOOL最初设置为“

我有一个关于iOS故事板的问题。 在我的故事板中,我有我的流程:

导航控制器; 登录视图控制器; 局部视图控制器; 如果没有有效的用户会话,则这是常规流。 启动应用程序时,我需要检查是否存在有效的用户会话。在这种情况下,我需要直接可视化3°详图视图控制器 我不确定,但我认为我需要检查AppDeGate中的用户会话。在这种情况下,如何直接加载3°视图控制器?

解决方案1

我认为您可以做的是根本不检查有效会话。以下是我的想法

1创建一个名为isUserSignedIn的BOOL,该BOOL最初设置为“否”,并将其保存在NSUserDefaults中。AppDelegate didFinishLaunchingWithOptions方法

2一旦用户进行了有效登录,将BOOL设置为YES。在NSUserDefault中保存布尔值

3当用户注销时,将BOOL设置为NO

4每次用户打开应用程序时。在AppDelegate的didFinishLaunchingWithOptions中,布尔值的检查为是或否。如果否,则加载LoginView控制器。如果是,什么也不做

我就是这样做的。始终将所有布尔更改保存在NSUserdefaults中,并从此处加载

解决方案2 但如果要在AppDelegate中加载DetailViewController,请使用以下代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    //check your login session here…

    //if session ok loads DetailViewController
    DetailViewController* detail = [[DetailViewController alloc] init];
    [self.window.rootViewController presentViewController:detail
                                                 animated:NO
                                               completion:nil];
    //if not 
    // do something..


    return YES;
}

是否要直接切换到AppDelegate中的DetailViewController?是的,有更好的方法吗?可以将detail controller设置为导航控制器的根,并具有从detail controller到login controller的模式分段。然后,一旦应用程序启动,在detail controller中,在ViewDidDisplay中,您可以进行检查并立即切换到登录视图。这还允许用户登录后轻松返回详细信息视图