gpt4 book ai didi

iPhone:如何在一个NIB中控制两个表

转载 作者:行者123 更新时间:2023-12-03 20:31:39 25 4
gpt4 key购买 nike

我需要在同一个 NIB 中使用两个 UITableView。我使用了 IB 并创建了包含两个表的 View 。

我的头文件包含 ViewController 和两个类,每个类对应一个表(见下文)。在 IB 中,我可以将每个表的委托(delegate)和数据源连接到 FileOwner,但我无法弄清楚如何创建 IBOutlet 连接。我收到此消息:-[News tableView:numberOfRowsInSection:]:无法识别的选择器已发送到实例 0x15d3c02011-12-11 07:20:27.480 myCity1[659:707] 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[News tableView:numberOfRowsInSection:]:无法识别的选择器发送到实例 0x15d3c0”

这是头文件:

@interface News : UIViewController {

}

@end

@interface TownNews : UITableViewController {

UITableView *townNewsTable;

}

@property (nonatomic, retain) IBOutlet UITableView *townNewsTable;

@end

@interface GeneralNews : UITableViewController {

UITableView *generalNewsTable;

}

@property (nonatomic, retain) IBOutlet UITableView *generalNewsTable;

@end

最佳答案

我正在我的一个项目中处理这个问题(你可以观看它:应用程序商店中名为 IJCAI11 的免费应用程序;“People”选项卡(其中索引是使用单独的 tableView 完成的));据我从上面的代码来看,你让事情变得太复杂了。我将描述我是如何做到的,而不是说你不应该做什么:)

我只有一个类,比如说 YaddaYaddaViewController。

@interface YaddaYaddaViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
{
UITableView *tableView1;
UITableView *tableView2;
}
@property (nonatomic, retain) IBOutlet UITableView * tableView1;
@property (nonatomic, retain) IBOutlet UITableView * tableView2;

@end

请注意,viewController 派生自 UIViewController,而不是 UITableViewController(UITableViewController 类的目标是能够在 2 分钟内实现简单的 tableView,对于更多自定义内容,您应该始终使用 UIViewController。要了解更多相关信息,请阅读浏览一下 UITableViewController 类的文档)。

在“文件所有者”的 IB 中,我只需设置 YaddaYaddaViewController;我将 tableView1 和 tableView2 导出链接到 View 中的正确表;我将委托(delegate)和数据源链接到 tableView1/2,因此我有“多个”委托(delegate)和数据源。

最后,在代码中,对于所有委托(delegate)方法(例如 tableView:cellForRowAtIndexPath:)我只关注tableView的值,它的委托(delegate)事件导致了这个方法的调用,例如:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (tableView == self.tableView1) {
// some code here
} else {
// alternative code here
}
}

希望这有帮助!

关于iPhone:如何在一个NIB中控制两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8463954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com