0

別のビューをプッシュするメソッド didSelectRowAtIndexPath を実装しました。navigationController を使用して適切に実行されているコードがありますが、この場合はビューでnavigationItemを使用しています。どうすればビューをトリガーできますか? ありがとう

エラーログ:

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];
}
4

2 に答える 2

1

a は aではない[[self navItem]pushViewController:dvController animated:YES];ため、明らかにできません。UINavigationItemUINavigationController

[[self navigationController] pushViewController:dvController animated:YES];代わりに使用する必要があります。それを超えて、私はあなたが何を求めているのか分かりません。

于 2010-03-24T23:56:38.273 に答える
0

ビュー (XIB ?) から UINavigationItem を UINavigationController ナビゲーション項目として設定する必要があります。これを行うには、IBOutlet を navItem に設定し、コードで self.navControllet.navItem = navItem (そのようなもの) を実行するだけです。

于 2010-12-21T17:48:33.873 に答える