将UITableView与其他元素结合起来 - 如何创建和使用视图?

时间:2012-04-05 08:39:10

标签: objective-c ios uitableview

我有一个项目接近做我需要做的一切。它有一个主页面,有四个按钮,您可以选择一个选项。然后从这些选项启动tableview页面,并显示来自网站的已解析XML提要。然后,您可以选择表格中的一个选项以查看项目的详细视图,查询该项目等。

我的问题是我需要向TableViewController页面添加更多元素,而不是tableview本身。我想要一个自定义的后退按钮(不是导航控制器标准)加上一些标签,图像等。

在TableViewController xib中,tableview本身填充页面。我无法调整大小以在其上方添加更多元素。我可以在tableview上方添加一个“视图”窗口并将其放入其中。但它似乎将视图添加到tableview。这意味着当我滚动表格时,其他元素如新的后退按钮,作为表格的一部分滚动。

所以我想知道我是否需要这个页面不是一个tableviewcontroller,而是一个viewcontroller,里面有一个tableview,以及带按钮的其他视图等。这是正确的方法吗?但如果是这样,那么如何在代码中实例化tableviewcontroller?因为我的页面不再是那种类型了 - 它只是一个viewcontroller。但是在代码中我制作了一个tableviewcontroller ..稍微被这条路线吓到了。

对此的任何启发都会非常感激,因为各种搜索都没有让我更聪明。感谢。

2 个答案:

答案 0 :(得分:1)

要自定义它,这是要走的路:

  • 将您的类更改为视图控制器,它实现了TableViewDelegate和TableViewData Source协议。
  • 在您控制器的视图didLoad中,创建表视图,设置其委托,数据源以及您希望的任何其他属性,并将其作为子视图添加到视图中。

    tableView = [[[UITableView alloc] init] autorelease];
    tableView.delegate = self;
    tableView.dataSource = self;
    // .. Other customization
    [self.view addSubview:tableView];
    

我建议以编程方式而不是IB方式进行此操作。

答案 1 :(得分:0)

您需要一个具有IBOutlet UITableView的UIViewController,而不是UITableViewController。从Storyboard拖放UITableView组件并将其挂起,并根据需要在屏幕上定位它。这个UIViewController应该实现UITableViewDelegate和UITableViewDataSource方法。

编辑:请记住,UITableViewController只是UIViewController的子类,因此您不必真正摆脱所有代码。 :)您只需要对标题和主文件进行微调,并将Storyboard更改为UIViewController而不是UITableViewController,如上所述。