2009-07-02 57 views
31

我已经插入了一个UITableViewController,并将其对应的UITableView插入到一个简单的IB文档中。目标是将UITableView包含在父UIWindow(或UIView)中,并与其他“东西”(任何真正的东西)装饰在一起。以下是Interface Builder中可能的样子。你可以添加一个UITableViewController的TableView到另一个视图吗?

enter image description here

我已经试过这无数次,总是去同一个地方。

  1. 构建充满数据
  2. 定制UTableView的UITableViewController的工作子类,它的细胞,包括按目标
  3. 添加新创建的UITableViewController到IB的文档
  4. 拖动的UITableView出的UITableViewController和进入主UIView
  5. 将UITableViewController连线至UITableView
  6. 注意:在代码中添加UITableViewController会产生相同的pro blem

在iPhone模拟器或设备上运行应用程序时,表格显示正确,但第一次尝试与其交互时崩溃。一个滚动,一个水龙头,任何东西崩溃的应用程序。这似乎是一个委托问题,就像UITableView不知道如何与UITableViewController进行通信,但我不知道如何解决问题。

到目前为止,我已经能够通过自定义tableHeaderView来获得足够的布局,但我真的希望有其他技术的工作。

回答

32

您正确的道路!这里是你需要做的:

  1. 创建一个标准的UIViewController子类及其附带的视图xib。

  2. 在XIB中添加一个UITableView。

  3. 把所有东西都捆起来。视图控制器将成为你的表的委托和数据源,所以你必须实现这两个协议。

  4. 在实现文件中,添加所有的所需的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 

应该这样做!

+0

工作就像一个魅力,谢谢! – 2009-07-31 19:31:39

相关问题