в Интерфейсном Разработчике я могу соединиться между кнопкой в ​​моем пользовательском контроллере и действием в AppDelegate? - PullRequest
0 голосов
/ 21 февраля 2011

В Интерфейсном Разработчике я могу соединиться между кнопкой в ​​моем пользовательском контроллере (в моем пользовательском NIB) и методом действия, который я вставил в MainView NIB (т. Е. AppDelegate)?Понимая, что я пытаюсь получить два (2) пользовательских контроллера (с их собственными представлениями), чтобы при запуске приложения iPhone запускаться с View1.Но тогда на View1 есть кнопка, которая, если вы нажмете, поменяет контроллер / представление View1 с представлением контроллера View2.Я хотел укрепить понимание того, как AppDelegate с основным окном выделяется конкретное представление для отображения, которое содержится в настраиваемом NIB / контроллере, который я поставляю.

Поэтому я подумал, что должен поместить код, который меняетвыводит представления (аналогично здесь ) как действие в коде делегата приложения (к лучшему или к худшему).(т.е. не в любом из моих контроллеров view1 или view2)

В любом случае, я считаю, что в IB невозможно перетащить событие TOUCH_UP_INSIDE кнопки View1 в MainViewNIB.Разве это невозможно сделать?Итак, еще раз, я эффективно пытаюсь получить кнопку из одного NIB для запуска метода действия в другом NIB (контроллере).

Ответы [ 3 ]

1 голос
/ 22 апреля 2012

Я знаю, что этот вопрос старый, но я подумал, что хотел бы отметить это для всех, кто ищет этот ответ.AppDelegate не очень подходит для обмена мнениями.Вам нужно создать контроллер корневого представления.Если вы создадите новый контроллер представления, установите его в качестве корневого контроллера представления в AppDelegate и добавите инициализацию View 1 в раздел «ViewDidLoad» нового корневого контроллера представления, вы сможете менять представления так, как вам нравится.Вам все еще нужно будет создать протокол и делегировать отправку сообщений по цепочке на корневой контроллер представления, но здесь есть множество потоков, которые показывают вам, как это сделать.Удачи!

0 голосов
/ 21 февраля 2011

В файле .xib вы можете создавать только соединения между объектами («реальными» объектами, такими как ваша кнопка, метки и т. Д. Или объектами «прокси», такими как владелец файла), на которые есть ссылки в этом файле .xib.

Если вы установите владельца файла .xib в свой подкласс делегата приложения и вызовете этот код для загрузки пера:

[[NSBundle mainBundle] loadNibNamed:@"MyNib" owner:myAppDelegate options:nil];

, тогда любые соединения между вашими элементами пользовательского интерфейса и подклассом вашего делегата приложения будут заполнены.при использовании вашего объекта делегата приложения (но будут установлены только IBOutlets, которые равны nil во время загрузки, loadNibNamed: owner: options: не изменит ненулевые IBOutlets в объекте owner).

0 голосов
/ 21 февраля 2011

Исходя из того, что я видел до сих пор, это кажется невозможным в Интерфейсном Разработчике. Дайте мне знать, если вы согласны.

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

...