Проблемы с pushViewController - PullRequest
       19

Проблемы с pushViewController

0 голосов
/ 29 апреля 2011

У меня есть приложение, в котором есть корневой контроллер представления, который выдвигает другой контроллер представления в представление. этот контроллер представления показывает таблицу. когда ячейка выбрана, она перемещается к другому контроллеру представления. Первый толчок работает, а второй нет. Вот мой код для выбора ячейки в таблице:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

TwoViewController *two = [[TwoViewController alloc] initWithNibName:@"TwoViewController": bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:two animated:YES];
[two release];

Есть идеи, что я сделал не так? коды, которые я использовал для обоих нажатий, почти идентичны ... Я пытался сделать это, поместив этот код в событие touchUpInside для UIButton, но он не работает. Я предполагаю, что нет навигационного контроллера, чтобы выдвинуть представление, но я не знаю. Пожалуйста, помогите!

Ответы [ 4 ]

1 голос
/ 29 апреля 2011

Изменили ли вы метод -initWithNibName: bundle в TwoViewController?Я предполагаю, что он не инициализируется правильно (то есть: метод не инициализирует суперкласс правильно).

Редактировать: Я думаю, что я нашел ошибку, это вроде очевидно,на самом деле.

Пожалуйста, проверьте этот код, который вы отправили:

initWithNibName:@"TwoViewController": bundle:[NSBundle mainBundle]];

Ошибка около строки @"TwoViewController":, лишней точки с запятой, которой не должно быть, замените ее на:

initWithNibName:@"TwoViewController" bundle:[NSBundle mainBundle]];
1 голос
/ 29 апреля 2011

Зарегистрируйте оба 'two' и self.navigationController,

NSLog(@"two = %@", two);

NSLog(@"self.navigationController = %@", self.navigationController);

Сначала вы узнаете, является ли один из них нулем (или обоими), и вызывается ли tableView: didSelectRowAtIndexPath:.

0 голосов
/ 29 апреля 2011

Проблема с навигационным контроллером. Проверьте его правильно

0 голосов
/ 29 апреля 2011

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

...