你可以添加一个UITableViewController的TableView到另一个视图吗?
问题描述:
我已经插入了一个UITableViewController,并将其对应的UITableView插入到一个简单的IB文档中。目标是将UITableView包含在父UIWindow(或UIView)中,并与其他“东西”(任何真正的东西)装饰在一起。以下是Interface Builder中可能的样子。你可以添加一个UITableViewController的TableView到另一个视图吗?
我已经试过这无数次,总是去同一个地方。
- 构建充满数据
- 定制UTableView的UITableViewController的工作子类,它的细胞,包括按目标
- 添加新创建的UITableViewController到IB的文档
- 拖动的UITableView出的UITableViewController和进入主UIView
- 将UITableViewController连线至UITableView
- 注意:在代码中添加UITableViewController会产生相同的pro blem
在iPhone模拟器或设备上运行应用程序时,表格显示正确,但第一次尝试与其交互时崩溃。一个滚动,一个水龙头,任何东西崩溃的应用程序。这似乎是一个委托问题,就像UITableView不知道如何与UITableViewController进行通信,但我不知道如何解决问题。
到目前为止,我已经能够通过自定义tableHeaderView来获得足够的布局,但我真的希望有其他技术的工作。
答
您正确的道路!这里是你需要做的:
创建一个标准的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
应该这样做!
工作就像一个魅力,谢谢! – 2009-07-31 19:31:39