pushViewController, использующий UINavigationItem вместо UINavigationController - PullRequest
0 голосов
/ 25 марта 2010

Я реализовал метод didSelectRowAtIndexPath, который должен выдвигать другое представление. У меня есть код, работающий правильно с использованием navigationController, но в этом случае я использую navigationItem для представления. Как я мог вызвать представление? Thanx

Журнал ошибок:

2010-03-25 00:09:52.459 TableArchive[1062:207] trigger
2010-03-25 00:09:52.461 TableArchive[1062:207] *** -[UINavigationItem pushViewController:animated:]: unrecognized selector sent to instance 0x3921ca0
2010-03-25 00:09:52.462 TableArchive[1062:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[UINavigationItem pushViewController:animated:]: unrecognized selector sent to instance 0x3921ca0'
2010-03-25 00:09:52.463 TableArchive[1062:207] Stack: (


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
 NSLog(@"trigger");

 if(dvController == nil) {
   DetailView *aController =[[DetailView alloc]initWithNibName:@"DetailView" bundle:nil];

   self.dvController = aController;

   [aController release];
 }

 [[self navItem]pushViewController:dvController animated:YES];

 [dvController release];
}

Ответы [ 2 ]

1 голос
/ 25 марта 2010

Очевидно, что вы не можете сделать [[self navItem]pushViewController:dvController animated:YES];, потому что UINavigationItem не UINavigationController.

Вы должны использовать [[self navigationController] pushViewController:dvController animated:YES]; вместо. Кроме того, я не понимаю, о чем вы спрашиваете.

0 голосов
/ 21 декабря 2010

Вам необходимо установить UINavigationItem из представления (XIB?) В качестве элемента навигации UINavigationController. Вы можете сделать это, установив IBOutlet в navItem, и в своем коде вы просто делаете self.navControllet.navItem = navItem (что-то в этом роде).

...