2009-09-19 2 views
0

У меня есть 2 XIB с соответствующими контроллерами View. Назовите их MainViewController и AboutViewController. Имена XIB точно совпадают с именами ViewControllers. После нажатия кнопки в MainViewController я хочу показать AboutViewController.Почему этот код не загружает мой NIB/XIB

У меня есть код, как это в MainViewController:

- (IBAction) infoButtonAction:(id)sender { 
    AboutViewController *aboutViewController = [[AboutViewController alloc] init]; 
    [[self navigationController] pushViewController:aboutViewController animated:YES]; 
} 

Но ничего не происходит, AboutViewController не обнаруживается. Я также пробовал эту строку:

AboutViewController *aboutViewController = [[AboutViewController alloc] initWithNibName:@"AboutViewController" bundle:nil]; 

Но напрасно. Что мне не хватает?

ответ

0

у вас есть ошибка? Вы проверили, что кнопка правильно подключена к IB?

Вы пытались использовать modal view controller?

+0

Я не получаю никаких ошибок. Кнопка правильно подключена, поскольку она останавливается на контрольной точке внутри функции щелчка. – AngryHacker

1

Осмотрите свой инструмент AboutViewController.xib в построителе интерфейсов и убедитесь, что владелец файла установлен в AboutViewController в инспекторе класса. Также убедитесь, что свойство view владельца файла подключено к представлению в xib. Наконец, код для отображения его следует читать:

- (IBAction) infoButtonAction:(id)sender { 
    AboutViewController *aboutViewController = [[AboutViewController alloc] initWithNibName:@"AboutViewController" bundle:nil]; 
    [[self navigationController] pushViewController:aboutViewController animated:YES]; 
    [aboutViewController release]; 
} 

Кроме того, вы должны проверить, что это не-ноль внутри того же метода:

UINavigationController * nc = self.navigationController; 
+0

Вы правы. Self.navigationController равен нулю. Можете ли вы сказать мне, почему и что я могу с этим поделать? – AngryHacker

+0

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

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