приложение для iphone с контроллером uinavigation и контроллером uitabbar - PullRequest
0 голосов
/ 01 сентября 2011

Я новичок в программировании для iphone, и я пытаюсь создать приложение, которое имеет контроллер uinavigation, а rootviewcontroller - это контроллер uiview, который представляет собой экран входа в систему с экрана входа в систему, пользователь переходит на контроллер uitabbarcontroller, который имеет 5 вкладок и каждыйВкладка является контроллером uinavigation, и каждый навигационный контроллер имеет две кнопки на панели навигации. Одна кнопка открывает представление сообщений, а другие представления уведомлений - каждое представление является контроллером uiview.

Теперь пользователь может нажимать кнопку сообщения на каждой вкладке и сообщение.появится представление, и я хочу убедиться, что если он нажимает кнопку на первой вкладке, а затем переходит на другую вкладку, то представление сообщений исчезает и освобождается из памяти, а когда он нажимает кнопку сообщений на новой вкладке, тогда другое представление сообщенийпоявится.

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

Ответы [ 2 ]

0 голосов
/ 01 сентября 2011

Вы понимаете, что можете заменить контроллер корневого представления в окне?Метод -applicationDidFinishLaunching:withOptions: вашего делегата приложения, вероятно, выполняет что-то вроде:

window.rootViewController = loginViewController;

Когда вы устанавливаете свойство окна rootViewController, окно добавит представление этого представления контроллера как подпредставление самого себя.

В -applicationDidFinishLaunching:withOptions: нет ничего особенного - это просто метод делегата, который вызывается, когда приложение завершает загрузку и готово приступить к работе.Вы можете установить свойство окна rootViewController так же, как и другие методы, поэтому, когда ваш контроллер представления входа в систему определяет, что пользователь успешно вошел в систему, он может сделать что-то вроде одного из следующих:

  • создать экземпляр контроллера панели вкладок и установить само свойство rootViewController окна
  • отправить сообщение его делегату (который, вероятно, будет тем же объектом, что и делегат приложения), чтобы сообщить ему, что вход в систему прошел успешно;Затем делегат мог установить контроллер панели вкладок
  • , чтобы отправить уведомление всем, кому небезразлично, что вход в систему прошел успешно, и позволить кому-то еще установить контроллер панели вкладок
.
0 голосов
/ 01 сентября 2011

Вы можете встроить свои виды входа в систему внутри AppDelegate и показывать их по мере необходимости.Оттуда вы загрузите свой rootController, который должен быть вашим tabBar.Затем вы можете загрузить свой контроллер навигации внутри каждой вкладки.Один для каждой вкладки.Ваш просмотр сообщения может быть вызван с любой из вкладок.Просто нужно убедиться, что вы правильно расположили свои контроллеры.

AppDel -> TabBar -> NavController -> Индивидуальные представления

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