Может кто-нибудь опубликовать инструкции о том, как создать модально представленный контроллер панели вкладок? - PullRequest
1 голос
/ 13 ноября 2010

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

Почему я не могу перетащить контроллер панели вкладок в свой вид?

Почему IB создает другое «окно», когда я перетаскиваю TBC в окно документа?

Почему в одном наконечнике присутствуют 2 вида вещей?

Почему я получаю это сообщение (сбой), когда я пытаюсь представить модальное представление: "наконечник, но выход представления не был установлен"?

Как вы помните, какие небольшие соединения вам нужно установить в IB, кроме очевидных соединений, на которые вы ссылаетесь в коде?

Существует ли учебник по IB, который выходит за рамки простосамые основные готовые шаблоны приложений и на самом деле объясняет, что происходит?

Ответы [ 2 ]

1 голос
/ 13 ноября 2010

Почему я не могу перетащить контроллер панели вкладок в свое представление?

Поскольку на представления можно перетаскивать только другие представления.Контроллер представления не является представлением.

Почему IB создает другое «окно», когда я перетаскиваю TBC в окно документа?

Поскольку каждый контроллер представления имеет своесобственный главный вид.Если дважды щелкнуть контроллер представления в IB, откроется его представление.

Если вы действительно хотите создать все контроллеры из файла NIB, сделайте это следующим образом:

  1. Создайте новый пустой файл XIB с именем «TabBarController.xib».Он не содержит ничего, кроме записей о владельце файла и первом ответчике.

  2. Перетащите UITabBarController в эту XIB.Игнорируйте открывшееся представление (вы можете закрыть его).

  3. Настройте контроллер панели вкладок в соответствии с вашими потребностями, особенно перетаскивая на вкладку столько объектов UIViewController (или подклассов UIViewController)контроллер панели, как у вас есть вкладки.Если эти дочерние контроллеры представлений должны быть экземплярами ваших пользовательских подклассов контроллеров представлений, обязательно установите их классы соответствующим образом в Инспекторе.

  4. Для каждого дочернего контроллера панели вкладок создайте другой XIBфайл в Xcode, на этот раз с использованием предустановки View XIB.Давайте назовем их «ChildController1.xib», ... Откройте все из них в IB и установите для класса «Владелец файла» класс соответствующего дочернего контроллера (т. Е. UIViewController или подкласса).Затем подключите представления в этих XIB к представлению представления владельца файла.Настройте эти представления так, как вам нужно (добавив фактические элементы пользовательского интерфейса дочерних представлений и, при необходимости, подключив другие выходы).

  5. Закройте дочерние XIB и вернитесь к TabBarController.xib.Для каждого дочернего контроллера откройте инспектор атрибутов и установите для его атрибута «Имя NIB» значение «ChildController1», «ChildController2», ... Затем закройте XIB.

  6. В вашем коде:

    NSArray *nibFile = [[NSBundle mainBundle] loadNibNamed:@"TabBarController" owner:self options:nil];
    UITabBarController *tabBarController = [nibFile objectAtIndex:0];
    [self presentModalViewController:tabBarController animated:YES];
    
0 голосов
/ 17 ноября 2010

Я сломался и просто настроил TabBarController без использования Interface Builder. Чем больше я занимаюсь разработкой для iPhone, тем больше понимаю, что IB - это плохо, и я не буду использовать его, за исключением редких компонентов с абсолютными компоновками. В этом случае все, что вы получите, используя его, это значки и заголовки на каждой вкладке. На самом деле IB не предоставляет никакой потрясающей визуализации.

Мне бы очень хотелось, чтобы перья отображались в некотором читаемом текстовом формате, чтобы вы всегда могли перейти к коду, чтобы понять, что происходит, но это не так, поэтому я с удовольствием добавлю 6 строк кода, чтобы сделать мою программу не сбой

...