【发布时间】:2011-10-17 05:24:58
【问题描述】:
我有一个应用程序,其中在导航控制器内部有一个 TTTableView 控制器,它是 TabBar 的内部。
我希望这样,如果用户选择了一个项目,它将推送另一个 TTTableView,其中包含该类别下的项目。
我的代码是
-(void)didSelectObject:(id)object atIndexPath:(NSIndexPath *)indexPath {
if ([object isKindOfClass:[TTTableMoreButton class]]) {
[super didSelectObject:object atIndexPath:indexPath];
} else {
CategoryViewController *viewController = [[CategoryViewController alloc] initWithNibName:@"CategoryViewController" bundle:nil];
[self.navigationController pushViewController:viewController animated:YES];
[viewController release];
}
}
CategoryViewController 设置为
@interface CategoryViewController : TTTableViewController
CategoryViewController.xib 文件的数据源和委托设置为文件所有者,视图设置为 tableview,tableview 类设置为 TTTableView。
当我运行它时,选择一行时出现以下错误
2011-10-17 16:18:23.819 Biz Insider[34067:f803] -[CategoryViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x6c93d30
2011-10-17 16:18:23.820 Biz Insider[34067:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CategoryViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x6c93d30'
*** First throw call stack:
(0x1893052 0x157ed0a 0x1894ced 0x17f9f00 0x17f9ce2 0xb4cf2b 0xb4f722 0x9ff7c7 0x9ff2c1 0x9b61e 0xa0228c 0xa06783 0x9bb48 0x9b1301 0x1894e72 0x89192d 0x89b827 0x821fa7 0x823ea6 0x823580 0x18679ce 0x17fe670 0x17ca4f6 0x17c9db4 0x17c9ccb 0x1f88879 0x1f8893e 0x972a9b 0x273d 0x26b5)
terminate called throwing an exceptionCurrent language: auto; currently objective-c
如果我尝试推送另一个视图(我有一个带有 webview 的视图),那么它可以正常工作,或者如果我进入界面构建器并将文件所有者的“tableView”链接到 TTTableView 对象,它将正常工作并推送除了“下拉刷新”功能之外的控制器将不起作用,所以我假设这样做时删除不正确。
任何帮助将不胜感激。
编辑: 感觉跟下面的有关系
-(id<UITableViewDelegate>)createDelegate {
return [[[TTTableViewDragRefreshDelegate alloc] initWithController:self] autorelease];
}
这会将委托设置为 TTTableViewDragRefreshDelegate,它实现 numberOfRowsInSection 和所有垃圾。还有其他方法吗?
干杯, 院长
【问题讨论】:
标签: iphone uinavigationcontroller three20 uitabbar