Визуально изменить UIToolbar из раскадровки xcode - PullRequest
6 голосов
/ 03 января 2012

Я использую XCode 4 и создаю раскадровку приложения, которое я создаю, однако я не могу визуально изменить панель UIToolbar.

Я пытаюсь изменить UIToolbar, который находится внутри UITableViewController - однако я должен поместить UIToolbar из правильной иерархии, чтобы иметь возможность изменять его визуально. Я попытался поместить его в область контроллера представления, но это не заставляет это обнаруживаться.

В какой-то момент я смог заставить его появиться ниже, как его собственный объект, однако я не смог его воссоздать.

Problem

Однажды я смог заставить его выглядеть так Problem

Ответы [ 3 ]

21 голосов
/ 06 января 2012

Ваш UITableViewController находится внутри UINavigationController, который уже имеет свой собственный UIToolbar - вам не нужно перетаскивать новый в иерархию представлений.Интерфейсный конструктор может смоделировать для вас панель инструментов в разделе «Симулированные метрики» на панели инспектора.

Как только смоделированная панель инструментов станет видимой, просто перетащите в нее UIBarButtonItem s.Используйте пользовательский элемент с пользовательским представлением, если вам нужно что-то более сложное, чем кнопка или пробел.

Если вам нужно, чтобы элементы панели инструментов были динамическими, вы можете поддерживать ссылку через IBOutlet s, не обязательно имеяих по вашему мнению.Затем установите свойство UITableViewController toolbarItems или вызовите -setToolbarItems:animated: во время выполнения, чтобы отобразить соответствующие элементы.

См. Справочник класса Apple UINavigationController: отображение панели инструментов .

2 голосов
/ 06 января 2012

Чтобы ответить на ваш вопрос, визуальный редактор упрощает настройку большинства элементов управления, иерархий представлений и шаблонов делегирования, но разработчик по-прежнему должен убедиться, что они проверены.Реализация UITableViewController делает определенные предположения и утверждения относительно его иерархии представления, которые XCode не применяет через визуальный редактор.Учитывая, что желаемая иерархия представлений не поддерживается, я должен предположить, что поведение редактора либо не определено, либо не имеет значения.Обходной путь см. В предложении Макснера.

1 голос
/ 06 января 2012

UITableViewControllers разрешают только один объект просмотра, который, конечно, является UITableView.UITableViews не способствуют подписке и обычно помещают все в нижний колонтитул или верхний колонтитул.Нечто подобное невозможно:

-TableController
    -Table
        -Subview
        -Another subview

UITableViewControllers сведены к следующему:

-TableViewController
    -Table

Поэтому вам нужно будет использовать UIViewController и объявить там UITableView.Вот иерархию, которую вы должны использовать:

- ViewController <Table's Delegate & Data Source>
    - View           
        -Table
        - Your UIToolbar

В вашем ViewController.h объявите IBOutlet UITableView и подключите источник данных и делегирование к ViewController.Затем просто добавьте реализации UITableView в ваш файл .m, и все готово.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...