Ios 不同的UIViewController已登录
当用户打开应用程序时,它会显示loginIos 不同的UIViewController已登录,ios,objective-c,uiviewcontroller,Ios,Objective C,Uiviewcontroller,当用户打开应用程序时,它会显示loginUIViewController。当用户登录时,重定向到下一个mapkitUIViewController。但当用户再次打开应用程序时,我希望他跳过登录UIViewController。我该怎么做?我尝试在登录方法viewwillbeen中以编程方式重定向,但效果不好(第二次显示控制器) 您可以这样做: AppDelegate.m - (BOOL)application:(UIApplication *)application didFinishLaunc
UIViewController
。当用户登录时,重定向到下一个mapkitUIViewController
。但当用户再次打开应用程序时,我希望他跳过登录UIViewController
。我该怎么做?我尝试在登录方法viewwillbeen
中以编程方式重定向,但效果不好(第二次显示控制器)
您可以这样做: AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// replace with your real auth-checking
if ([self wasAuthorized] == NO) {
[self showLoginController];
}
return YES;
}
- (UIViewController *)mainController {
UINavigationController *rootNavigationController = (UINavigationController *)[[self window] rootViewController];
return [[rootNavigationController viewControllers] firstObject];
}
- (void)showLoginController {
UIViewController *loginController = [self loginController];
dispatch_async(dispatch_get_main_queue(), ^{
[self.mainController presentViewController:loginController animated:YES completion:nil];
});
}
- (UIViewController *)loginController {
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
return [mainStoryboard instantiateViewControllerWithIdentifier:@"LoginNavController"];
}
更好的方法是在AppDelegate中添加此检查
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if(isLoggedin) {
Storyboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *mapViewController = [storyboard instantiateViewControllerWithIdentifier:@"mapViewController" ];
self.rootViewController = [[UINavigationCotroller alloc] initWithRootViewController:mapViewController];
}
return YES;
}
不要在第一个视图控制器的
视图中将显示:
方法中检查登录,而是在应用程序代理的didfishlaunchingwithoptions:
方法中执行此操作:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if (loggedIn) {
UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
[navigationController.topViewController performSegueWithIdentifier:@"1to2" sender:navigationController.topViewController];
return YES;
}
}
其中1to2
是从视图控制器1到2的段的标识符