例外:无法识别的选择......试图在导航堆栈推视图控制器时

问题描述:

我想在我的buttonPressed方法例外:无法识别的选择......试图在导航堆栈推视图控制器时

-(IBAction) viewButtonPressed:(id)sender { 

PersonDetailViewController *personDetailViewController = [[PersonDetailViewController alloc] initWithNibName:@"PersonDetailViewController" bundle:nil]; 
[self.navigationController pushViewController:personDetailViewController animated:YES]; 
[personDetailViewController release]; 

}

与下面的代码推导航堆栈上的视图控制器

我运行了调试器,它在下面的代码从上面的代码中移出后引发异常。

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

这是非常标准的电话......它已经多次工作,没有任何问题。任何想法我在这里想念什么? 我被困在这一点,不能进一步深入。

下面是在控制台上的错误信息来运行调试

2009-10-30 18:15:11.127 Untitled[6089:20b] * -[NSCFString image]: unrecognized selector sent to instance 0x3050 2009-10-30 18:15:11.129 Untitled[6089:20b] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFString image]: unrecognized selector sent to instance 0x3050' 2009-10-30 18:15:11.130 Untitled[6089:20b] Stack: ( 807902715, 2460638779 ...

问题出在我之前设置后退按钮项目的init方法之一。

我会通过查看视图的生命周期方法里面开始 - viewWillAppearviewDidAppear等 - 在PersonDetailViewController类的调用方法在某个对象实例上名为image

您也可以尝试单步执行这些方法,试图缩小调用的范围。

+0

感谢teabot的回复......我无法通过代码来解决这个问题(请参阅下面的内容),但只是仔细审阅代码,我发现问题所在。 – Dev 2009-10-30 14:09:38