Не удается поместить представление в стек

У меня есть контроллер представления:

@interface DetailViewController : UIViewController

Он отображает карту, и булавки перебрасываются на эту карту. Когда пользователь нажимает кнопку аксессуара на одном из представлений аннотаций, я хочу, чтобы другой вид отображался перед пользователем.

По той или иной причине навигационный контроллер всегда имеет значение null, когда я запускаю следующий код.

hotelDetailViewController = [[HotelDetailViewController alloc] initWithNibName:@"HotelDetailViewController"
                                                                        bundle:nil];

if (![self navigationController])
{
    NSLog(@"navigation controller null");
}

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

Что я делаю неправильно? В какой момент мне нужно выделить и инициализировать навигационный контроллер, потому что он, похоже, доступен только для чтения?


person TheLearner    schedule 01.09.2010    source источник
comment
нужен еще код для отображения контекста, где определен navigationController?   -  person Aaron Saunders    schedule 01.09.2010
comment
@ Аарон, это собственность UIViewController   -  person Dave DeLong    schedule 01.09.2010
comment
Я предполагаю, что контроллер представления, обрабатывающий действие, на самом деле не находится внутри контроллера навигации. Может быть, ваш DetailViewController встроен откуда-то еще, но не через метод навигационного контроллера? хотелось бы больше подробностей об этом событии.   -  person Max Seelemann    schedule 01.09.2010
comment
@Max вроде того, что я говорил, но не так конкретно...   -  person Aaron Saunders    schedule 01.09.2010


Ответы (1)


В какой момент мне нужно выделить и инициализировать навигационный контроллер, потому что он, похоже, доступен только для чтения?

Что ж, вы обычно не устанавливаете свойство navigationController самостоятельно, обычно вы с самого начала настраиваете контроллер навигации, а затем передаете свой DetailViewController контроллеру навигации, и тогда свойство устанавливается.

Раздел в руководстве по программированию View Controllers, посвященный навигационным контроллерам объясняет, как настроить навигационный контроллер либо с помощью файла пера, либо программно.

person filipe    schedule 01.09.2010