2017-01-22 4 views
1

У меня есть панель вкладок, которая содержит пять вкладок. Мое приложение не требует, чтобы пользователь вошел в систему. Разрешается только некоторые функции, если пользователь регистрируется или регистрируется.Пропустить контроллер входа в систему управления NavigationController

Если пользователь уже зарегистрировался или зарегистрировался, я применил следующую логику в UserViewController, которая подключена к NavigationController. Однако в следующей логике пользователь все еще мог видеть этот ViewController за одну-две секунды.

-(void) viewWillAppear: (BOOL) animated 
{ 
    if(isRegistered) 
    { 
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
    UserProfileViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"UserProfileVewController"]; 
    [self.navigationController pushViewController:vc animated:YES]; 
    } 
} 

Интересно, зарегистрирован ли пользователь уже сейчас, как я могу пропустить UserViewController? Я хочу, чтобы щелчки на вкладке открывались непосредственно на UserProfileVewController, а не на UserViewController, который является контролером входа/регистрации.

enter image description here

ответ

1

В AppDelegate проекта, вы можете проверить, если пользователь вошел в систему/зарегистрирован или нет, и отображать ViewControllers в зависимости:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    // Override point for customization after application launch. 

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
    BOOL userIsLoggedIn = AMethodCheckIfUserLoggedIn(); 
    if (userIsLoggedIn) { 
     UserProfileViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"UserProfileVewController"]; 
     self.window.rootViewController = vc; 
    } 
    else{ 
     UserViewController *userViewController = [storyboard instantiateViewControllerWithIdentifier:@"UserViewController"]; 
     self.window.rootViewController = userViewController; 
    } 

    //... Other logic goes here 

    [self.window makeKeyAndVisible]; 
    return YES; 
} 
0

Вы можете попытаться иметь ваше приложение делегата (или кого бы вы хочу действительно) соответствовать UITabBarControllerDelegate и реализовать - (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController. Там вы, возможно, сможете выполнить необходимые проверки/прокрутку контроллеров.