добавить панель инструментов над UITableView для использования в подробном представлении UISplitViewController - PullRequest
1 голос
/ 24 июня 2010

Я хочу использовать табличное представление в качестве панели сведений в моем UISplitViewController.Как поставить панель инструментов вверху?Я хочу иметь возможность добавлять элементы панели кнопок так же, как мои подробные представления вне таблицы.Спасибо.

Ответы [ 3 ]

3 голосов
/ 25 июня 2010

Я разочарован этой проблемой, пытаясь использовать класс UITableViewController, который не позволяет вам добавлять другие элементы пользовательского интерфейса, такие как панель инструментов.Я решил это, создав объект UIViewController и добавив панель инструментов и табличное представление по отдельности.Затем я заставил ViewController реализовать методы делегата и источника данных табличного представления.Работает отлично.

0 голосов
/ 31 декабря 2012

Я решил по-другому: в случае отсутствия навигационной панели, я просто добавляю панель инструментов вверху tableView и меняю высоту для заголовка в первом разделе.Единственная проблема заключается в том, что панель инструментов прокручивается с tableView.

Добавьте это к ViewDidLoad вашего TableViewController

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;
}
0 голосов
/ 24 июня 2010

Общей парадигмой является использование UINavigationControllers в качестве контроллеров верхнего уровня для главных страниц и страниц сведений.

Таким образом, вид hiearchy выглядит следующим образом (вежливо)

  • Окно приложения
    • UISplitViewController
      • master: UINavigationController
        • имеет ваш собственный контроллер (tableView или UIView)
      • деталь: UINavigationController
        • имеет ваш собственный контроллер (UITableViewCOntroller / UIVIEWcontroller)

надеюсь, что эта грубая диаграмма имеет смысл.

Преимущество UINavigationController в качестве контроллера верхнего уровня, вы получаете панель инструментов бесплатно.

   self.navigationController.toolbar
...