2014-12-16 2 views
1

У меня есть контроллер представления имени LoginViewController который имеет тип, UIVewController. После того как пользователь loggs, я хочу передать эту точку зрения на UITabBarController, который состоит из FirstViewController и SecondViewController.UIViewController к UITabBarController

Я пытаюсь сделать это с помощью следующие:

- (void)switchView { 
    FirstViewController *firstView = [[FirstViewController alloc] initWithNibName:nil bundle:nil]; 
    [self.navigationController pushViewController:firstView animated:YES]; 
} 

Но, похоже, это не сработает. Это потому, что я не рассматриваю весь UITabBarController?

ответ

0

Да, вы должны показать UITabBarController:

- (void)switchView { 
    FirstViewController *firstViewController = [[FirstViewController alloc] initWithNibName:nil bundle:nil]; 
    SecondViewController *secondViewController = [[SecondViewController alloc] initWithNibName:nil bundle:nil]; 
    UITabBarController *tabController = [[UITabBarController alloc] init]; 
    tabController.viewControllers = @[firstViewController, secondViewController]; 
    [self presentViewController:tabController animated:YES completion:nil]; 
} 
+0

Это еще не переключить вид. Если это помогает, я использую раскадровку. – user3421819

+0

обновленный ответ. Но вы также можете легко достичь этого с помощью раскадровки segues –

+0

Ответ не обновляется. – user3421819

0

После успешного входа в систему, вы могли бы сделать что-то вроде следующего и установить UITabBarController будет новый корень UIViewController для вашего приложения.

В вашем AppDelegate.m

UITabBarController *tabController = [UITabBarController alloc] init]; 
[myTabBarController setViewControllers: [NSArray arrayWithObjects:firstViewController, secondViewController, nil]]; 

- (void)switchViewAfterSuccessfulLogin { 
    if (![[[self window] rootViewController] isKindOfClass:[UITabBarController class]]){ 
    [self.window setRootViewController:tabController]; 
    } 
} 
0

Да, вы должны рассмотреть UITabBarController. Вы можете сделать это через раскадровку.

  1. Выберите FirstViewController в раскадровке.
  2. Перейти к редакторе-> Вставить встроенный контроллер клавиатуры. Это создаст контроллер панели вкладок TabBarController.
  3. Добавить связь segue от TabBarController до SecondViewController.
  4. создать принудительную SEGUE от LoginViewController к TabBarController
Смежные вопросы