2013-09-15 3 views
0

Я делаю приложение с панелью навигации, которая будет переключаться между первым и третьим видами (вторая и первая будут переключаться панелью вкладок).Навигационная панель не меняет вид

В FirstViewController.h:

@property(strong,nonatomic) ThirdViewController *thirdViewController; 

В методе viewDidLoad в FirstViewController я сделал это:

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Model" 
style:UIBarButtonItemStylePlain target:self action:@selector(goToThirdView:)]; 

А также ...

- (void)goToThirdView:(id)sender 
{ 

    ThirdViewController *thirdViewController = [[ThirdViewController alloc] initWithNibName:@"ThirdViewController" bundle:nil]; 

    self.thirdViewController = thirdViewController; 

    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES]; 

    [self.view removeFromSuperview]; 

    [self.view insertSubview:self.thirdViewController.view atIndex:0]; 

    [UIView commitAnimations]; 

} 

Мой AppDelegate является выглядит следующим образом:

UIViewController *viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil]; 
UINavigationController *navigationController1 = [[UINavigationController alloc] initWithRootViewController:viewController1]; 
UIViewController *viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 
self.tabBarController = [[UITabBarController alloc] init]; 
self.tabBarController.viewControllers = [NSArray arrayWithObjects:navigationController1, viewController2, nil]; 
self.window.rootViewController = self.tabBarController; 

Но это не работает, когда я нажимаю кнопку, ничего не происходит. Есть идеи ? Спасибо заранее.

+0

Это не очень хорошая идея, чтобы добавить мнение другого контроллера на ваш взгляд, не делая этот контроллер вида ребенка контроллер. Почему бы вам не использовать навигационный контроллер и нажать от первого до третьего. – rdelmar

+0

На самом деле я следовал этому учебнику http://fuelyourcoding.com/how-to-add-buttons-to-your-ios-app-navigation-bar/, который они предлагают мне в этом другом вопросе: http: // stackoverflow. com/questions/18788656/navigation-bar-tutorial, поэтому я полагаю, что я использую контроллер навигации. – user2303633

+0

В этом учебнике используются старые методы, если он использует [UIView commitAnimations] (вы должны использовать блочные методы для анимации). Трудно посоветовать вам, что делать, не зная, что такое структура вашего приложения, и что вы пытаетесь выполнить. – rdelmar

ответ

0

Вы должны оставить селектор для кнопки как goToThirdView :, но сделать этот метод выглядеть следующим образом:

- (void)goToThirdView:(id)sender { 

    ThirdViewController *thirdViewController = [[ThirdViewController alloc] initWithNibName:@"ThirdViewController" bundle:nil]; 
    [self.navigationController pushViewController:thirdViewController animated:YES]; 

} 
+0

Это сработало! Огромное спасибо!!! – user2303633

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