广东话刷新的UITableView内的UIViewController
问题描述:
新手:(广东话刷新的UITableView内的UIViewController
通过教程调整我的方式,但36小时不明白这一个
例1.H
@interface RootViewController : UITableViewController {
NSArray *userList; // the current list of users
}
@property (nonatomic, retain) NSArray *userList;
- (void) updateTable:(NSArray *)data;
- (void) fetchData;
@end
例1.M
- (void) updateTable:(NSArray *)data {
self.userList = data;
[self.tableView reloadData];
}
这工作,异步XML对象返回一个数组与选择器updateT能够和表更新。
但是,当我使视图一个UIViewController表不更新
例2.H
例2.M
- (void) updateTable:(NSArray *)data {
self.userList = data;
NSLog(@"updateTable sees this data: %@", userList);
//[self.tableView reloadData];
[tableView reloadData];
}
updateTable执行和数据是通过了好,但表不刷新。我意识到这是我处理表的方式,因为它是UIViewController的一部分,而不是直接的UITableViewController。但我认为
UIViewController <UITableViewDataSource, UITableViewDelegate>
有线在表中。如果我将数组内容硬编码到AppDelegate中,则我有另一个测试用例,其中示例二适用。
我已经试过
[FirstViewController reloadData];
[FirstViewController.tableView reloadData];
既不工作。
脑死了看代码。希望这很简单。
TIA
答
最可能的原因是,tableView
是nil
。确保你已经用IB连线了。
你可以粘贴NSLog的输出(@“%@”,tableView);在updateTable中: – MCannon 2011-03-21 19:04:25
您是否已将界面构建器中的表的数据源和代理插座连接到控制器? – 2011-03-21 19:05:00
@Saltymule。啊哈,不,我没有......好的想法。但是在数据源和委托给FirstView.xib中的文件所有者之后,由于未捕获异常'NSInvalidArgumentException'导致应用程序崩溃,原因:' - [FirstViewController tableView]:无法识别的选择器发送到实例0x9403c60' – JulianB 2011-03-21 19:43:48