我使用以下代码在我的导航栏中添加一个按钮,按下时会调用方法showCountries:
UIBarButtonItem *countriesButton = [[UIBarButtonItem alloc] initWithTitle:@"Countries" style: UIButtonTypeRoundedRect target:self action:@selector(showCountries:)];
self.navigationItem.leftBarButtonItem = countriesButton;
[countriesButton release];
现在这个工作,按钮出现,按下时按计划进入showCountries方法。
show countries方法需要做的是加载一个包含错误国家列表的新表视图(目前在数组中)。
为此,我尝试了以下代码:
UIViewController *controller = [[UIViewController alloc] initWithNibName:@"countriesViewController" bundle:nil];
[self.navigationController pushViewController:controller animated:YES];
所有似乎都编译得很好,但是当使用时,控制台中出现以下错误并使应用程序崩溃:
2010-06-21 18:09:02.076 Vat Pro [788:207] * - [UIViewController tableView:numberOfRowsInSection:]:无法识别的选择器发送到实例0x12a920 2010-06-21 18:09:02.082 Vat Pro [788:207] * 由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:'*** - [UIViewController tableView:numberOfRowsInSection:]:无法识别的选择器已发送例子0x12a920' 2010-06-21 18:09:02.088 Vat Pro [788:207]
我现在已经摸不着头脑了2天,如果你能发现我的错误请告诉我。
我也试过加载一个普通的nib文件,这很好。
答案 0 :(得分:0)
是的 - 我发现了问题。这是因为我从第一个视图控制器中声明第二个视图控制器然后释放它。我已经把它移到了我的app委托,它解决了这个问题。
我创建了一个测试项目,证明这应该是其他任何人都认为这有用的。 link text