iPhone - UINavigationItem игнорируется при загрузке View Controller из xib - PullRequest
1 голос
/ 09 марта 2011

У меня UIViewController в UINavigationController, и я нажимаю секунду UIViewController на стек навигации из файла XIB. Этот XIB также включает UINavigationItem для заголовка и кнопки второго контроллера вида, но они игнорируются при загрузке XIB. Есть идеи?

Вот мой код (photoViewController - это второй viewController)

- (void) displayPhotoWithId:(int)photoId {

    if (_photoViewController == nil) {
        self.photoViewController = [[[PhotoViewController alloc] initWithNibName:@"PhotoView" bundle:[NSBundle mainBundle]] autorelease];        
    }

    _photoViewController.photoId = photoId;

    [self.navigationController pushViewController:_photoViewController animated:YES]; 

}

Ответы [ 2 ]

3 голосов
/ 21 марта 2011

Вы можете подключить это от конструктора интерфейса. Добавьте что-то вроде этого в свой контроллер вида:

IBOutlet UINavigationItem* navigationItem;

Затем подключите его к выходам контроллера представления (от владельца файла, предположительно, к UINavigationItem в вашей XIB). Я сделал это, и он отлично работает. Я полагаю, UINavigationController автоматически ищет 'navigationItem'.

0 голосов
/ 09 марта 2011

Элемент навигации игнорируется, поскольку он не имеет никакого отношения к этому контроллеру, он просто находится в XIB этого контроллера. Элемент навигации контроллера создается при создании экземпляра. Вы должны установить заголовок и кнопки навигации в коде (например, в viewDidLoad), потому что контроллер не имеет выхода navigationItem. UINavigationItem в XIB работает только внутри корневого контроллера UINavigationController.

...