Определение выходов и действий
Поскольку каждое представление имеет две кнопки, а выход не может указывать на несколько объектов одновременно, необходимо объявить четыре выхода: два для альбомного представления и два для портретного. При использовании этого метода важно правильно выбрать имена выходов, чтобы не запутаться.
Но постойте! А кто сказал, что нам действительно необходимы выходы для всех этих кнопок? Поскольку мы деактивируем кнопку, по которой слегка стукнул пользователь, может, использовать не выход, а аргумент sender? Как и в сценарии для приложения с одним представлением, именно так и следует сделать.
Подумайте об этом. Что произойдет, если пользователь слегка стукнет на кнопке Foo, а затем повернет телефон? Кнопка Foo в другом представлении — это совершенно другая кнопка, которая остается видимой, но работает не так, как мы ожидаем. Мы бы не хотели сообщать пользователям, что объект, с которым они работают в данный момент, — уже не тот объект, с которым они работали секунду назад.
Кроме выходов для кнопок, нам необходимы еще два выхода, указывающие на два разных варианта нашего представления. Когда мы работали с единственным представлением, нам было достаточно свойства родительского класса представления. Но так как мы собираемся изменять индикатор представления в ходе выполнения программы, необходимо гарантировать, что мы можем работать с обоими представлениями, а значит, нам нужны два выхода UlView.
Наши кнопки должны инициировать действие, поэтому нам нужен один метод, выполняющий действие, который будет вызываться при нажатии любой из кнопок, и мы просто объявим единственное действие buttonPressed: в классе контроллера нашего представления.
- Дата: 26-11-2014, 16:22