2014-05-21 3 views
0

У меня есть UINavigationBar, в котором есть AuthenticateViewController. Затем, когда пользователь его Вход в верхнем правом углу моего управления навигацией, я хочу показать UITabBar контроллер. Я все еще создаю это в appDelegate? Как я могу «вырваться» из контроллера UINavigation?Получение UITabBar после выхода из UINavigationBar

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
// Do any additional setup after loading the view. 

// Add methods for layout of this view controller here 

//1 
AppDelegate* appDelegate = [UIApplication sharedApplication].delegate; 
//2 
self.managedObjectContext = appDelegate.managedObjectContext; 

[self.navigationItem setHidesBackButton:YES]; 

// Now add the Sign In button 
UIBarButtonItem *signinButton = [[UIBarButtonItem alloc] initWithTitle:@"Sign In" style:UIBarButtonItemStylePlain target:self action:@selector(signinButtonPressed:)]; 

self.navigationItem.rightBarButtonItem = signinButton; 
} 

- (void) signinButtonPressed:(UIBarButtonItem *) sender 
{ 
    // What goes here to start the UITabBars 
} 
+0

Вы хотите перейти на новую страницу (после входа в систему), в которой вы видите панели вкладок? – GenieWanted

+0

Да, я хочу, чтобы панель навигации ушла и новый контроллер панели вкладок с несколькими вкладками. – cdub

+0

Итак, вы можете создать контроллер панели вкладок, а затем нажать его вместе с навигационным контроллером при нажатии кнопки входа. Затем вы можете скрыть панель навигации сверху. Понял? – GenieWanted

ответ

1

TabBarController Установить как rootViewController после входа в систему.

Ваша кнопка действия будет выглядеть так:

UITabBarController *tabBarController = [[UITabBarController alloc] init]; 
tabBarController.viewControllers = @[<your viewControllers>]; 

AppDelegate *appDelegate = [UIApplication sharedApplication].delegate; 
[appDelegate.window setRootViewController:tabBarController]; 

Edit: Вы не могли бы получить использовать с созданием массива с @[]. Итак, вот объяснение:

UIViewController *viewController1 = [[UIViewController alloc] init]; 
UIViewController *viewController2 = [[UIViewController alloc] init]; 

// Two methods of adding item to array 

// First method 
NSArray *array = [NSArray arrayWithObjects:viewController1, viewController2, nil]; 

// or 
NSArray *array = @[viewController1, viewController2]; 

tabBarController.viewControllers = array; 
+0

У меня это так, но как мне сделать элементы панели вкладок сами? – cdub

+0

@chris см. Мое обновление! –

0

Вам нужно сделать modalTransition, чтобы выскочить из navigationController .. это будет держать AuthenticateViewController в RootViewController из window .. если вы хотите изменить RootViewController, а затем вам нужно получить окно в AppDelegate и изменить его RootViewController к TabBarController вы будете делать здесь ... надеюсь, что вы его получили ..

Смежные вопросы