我已经将UITableViewController和它对应的UITableView插入到一个简单的IB文档中。目标是将UITableView包含在父UIWindow(或UIView)中,其他“东西”(任何真正的东西)装饰在表中。以下是Interface Builder中的内容。
我已经多次尝试并且总是到达同一个地方。
在iPhone模拟器或设备上运行应用程序时,表格会正确显示,但在您第一次尝试与其进行交互时会崩溃。滚动,点按,任何东西都会崩溃应用程序。这似乎是一个委托问题,就像UITableView不知道如何与UITableViewController进行通信,但我不知道如何纠正这个问题。
到目前为止,我已经能够通过自定义tableHeaderView来获得足够的布局,但我真的更喜欢使用其他技术。
答案 0 :(得分:32)
你走在正确的轨道上!这是你需要做的:
创建一个标准的UIViewController子类及其附带的视图xib。
在XIB中添加UITableView。
连接所有内容。视图控制器将是表的委托和数据源,因此您必须实现这两种协议。
在您的实现文件中,添加tableview所需的所有必要数据源和委托方法:
(UITableViewCell *)tableView:(UITableView *)tv
cellForRowAtIndexPath:(NSIndexPath *)indexPath
您的标头文件可能如下所示:
MyViewController.h
@interface MyViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
{
IBOutlet UITableView *myTableView;
//This outlet is only necessary if you need to send messages to the table view (such as reloadData)
}
@end
应该这样做!