在UITableView上方添加工具栏,以便在UISplitViewController详细视图中使用

时间:2010-06-23 20:31:48

标签: cocoa-touch uitableview ipad uitoolbar uisplitviewcontroller

我想在我的UISplitViewController中使用表视图作为详细信息窗格。如何将工具栏放在顶部?我希望能够以与非表格详细信息视图相同的方式添加条形按钮项目。 感谢。

3 个答案:

答案 0 :(得分:3)

我对此问题的沮丧在于尝试使用UITableViewController类,它不允许您添加其他UI元素,如工具栏。我通过创建一个UIViewController对象并将工具栏和表视图分别添加到其nib来解决它。然后我让ViewController实现了表视图的委托和数据源方法。效果很好。

答案 1 :(得分:0)

常见范例是将UINavigationControllers作为主页面和详细页面的顶级控制器。

所以视图层次结构看起来像这样(松散地说)

  • 申请窗口
    • UISplitViewController
      • master:UINavigationController
        • 拥有自定义Controller(tableView或UIView)
      • 详细信息:UINavigationController
        • 有自定义控制器(UITableViewCOntroller / UIVIEWcontroller)

希望这个原始图表有意义。

将UINavigationController作为顶级控制器,您可以获得“免费”的工具栏。

   self.navigationController.toolbar

答案 2 :(得分:0)

我解决了另一种方式:如果没有导航栏,我只需在tableView顶部添加一个工具栏,然后在第一部分中更改标题的高度。唯一的问题是工具栏使用tableView滚动。

将此添加到TableViewController的ViewDidLoad

if (! self.navigationController.navigationBar) {
    UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 44)];
    toolBar.barStyle = UIBarStyleBlackOpaque;
    [self.tableView addSubview:toolBar];
}

添加此方法:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection: (NSInteger)section
{
    return 50;
}