проблема с "заголовком" в UINavigationController - PullRequest
0 голосов
/ 02 июня 2011

У меня проблема с заголовком и UINavigationController. Я использую следующий код в UIViewControllerCurrent, и когда я возвращаюсь из NextViewController, заголовок NavBar по-прежнему "Предыдущий" .. Кто-нибудь может мне помочь с этой проблемой? Спасибо.

[self setTitle:@"Previous"]; 
NextViewController *controller = [[NextViewController alloc] init]; 
[[self navigationController] pushViewController:controller animated:YES]; 
[controller release], controller = nil; 

- (void)viewWillAppear:(BOOL)animated; {     
[self setTitle:@"Real Title"];     
[super viewWillAppear:animated]; } 

Ответы [ 3 ]

2 голосов
/ 02 июня 2011

Я бы попробовал обменять две строки

[self setTitle:@"Real Title"];     
[super viewWillAppear:animated];

так что вы получите

[super viewDidAppear:animated];
[self setTitle:@"Real Title"];

и я бы поместил их в viewDidAppear.

0 голосов
/ 02 июня 2011

Если решение dasdoms не работает, попробуйте следующее.

В NextViewController непосредственно перед открытием запустите этот код.

for (int i =0; i < [[self.navigationController viewControllers] count]; i++)
    {
        UIViewController *aController = [[self.navigationController viewControllers] objectAtIndex:i];

        if ([aController isKindOfClass:[PreviousViewController class]])
        {
            PreviousViewController *aPreviousViewController = (PreviousViewController *)aController;
            aPreviousViewController.title = @" Real Title";
        }

    }
0 голосов
/ 02 июня 2011

Попробуйте использовать методы делегата UINavigationController ниже.

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated;
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated;

Используйте один из методов делегата для изменения заголовка.

...