按下按钮后加载表格视图笔尖

Posted

技术标签:

【中文标题】按下按钮后加载表格视图笔尖【英文标题】:Loading a table view nib after button push 【发布时间】:2010-06-21 17:11:22 【问题描述】:

我使用以下代码向导航栏添加了一个按钮,按下该按钮将调用方法 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 增值税专业版[788:207]

我已经挠头 2 天了,如果你能发现我的错误,请告诉我。

我也尝试加载一个普通的 nib 文件,效果很好。

【问题讨论】:

【参考方案1】:

是的 - 我发现了问题。这是因为我从第一个视图控制器中声明了第二个视图控制器,然后将其释放。此后,我已将其移至已解决问题的应用委托。

我已经创建了一个测试项目来演示这一点,如果其他人觉得这很有用。 link text

【讨论】:

以上是关于按下按钮后加载表格视图笔尖的主要内容,如果未能解决你的问题,请参考以下文章

MpMoviePlayer 在停止事件后加载音频

为笔尖启动的视图添加边框和阴影

根据按下的按钮更改表格视图标题

加载 angularjs 视图后加载 jquery 模块?

在 ajax 调用后加载视图,CodeIgniter

笔尖中的非全屏表格视图