iOS: несколько селекторов для кнопки панели инструментов в зависимости от вида - PullRequest
0 голосов
/ 10 февраля 2012

У меня такое же представление, как и в календаре с просмотром дня, представлением списка и просмотром месяца.Они находятся в сегментированном элементе управления на панели инструментов.При изменении сегментированного элемента управления средний вид заменяется, а панель навигации и панель инструментов остаются.У меня есть еще одна кнопка под названием «Сегодня».Когда эта кнопка нажата, я хочу, чтобы она активировала селекторы в классе, который в данный момент отображается.IE: если загружен дневной обзор, он запустит селектор в DayViewController.Есть ли способ иметь несколько селекторов в зависимости от того, какой вид отображается в данный момент?

Моя структура выглядит так.

RootViewController

  • Панель инструментов и панель навигации созданы
  • Если на панели инструментов выбран День, то в середину загружается представление DayViewController
  • Если на панели инструментов выбирается Список, то в середину загружается представление ListViewController

DayViewController

  • (селектор). Прокрутка до сегодняшнего дня в режиме просмотра дня - это не текущая дата в представлении.

ListViewController

  • (селектор) Прокрутите до текущего раздела с текущей датой

1 Ответ

0 голосов
/ 10 февраля 2012

Сделайте так, чтобы ваша кнопка указывала на общий метод, такой как - (void)todayButtonTapped, затем решите, что делать:

- (void)todayButtonTapped;
{
   if (<check if day is presented>) {
       [self.dayViewController ....
   } else if (<check if week is presented>) {
       [self.weekViewController ...
   } else {
       [self.monthViewController ...
   }
}

Обновите

Чтобы сделать эту работу в вашем rootViewController добавленииновое свойство, которое называется что-то вроде currentController.Теперь каждый раз, когда вы меняете, какой контроллер отображается, вы обновляете это свойство, чтобы оно указывало на этот контроллер.Теперь все, что вам нужно сделать, это убедиться, что все ваши контроллеры реагируют на аналогичный метод и вызывают его

[self.currentController todayTapped:sender];
...