С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование iOS/iPhone
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
1

Два views для обработки поворота

09.08.2013, 21:16. Просмотров 806. Ответов 6
Метки нет (Все метки)

Добрый день!

Решил потренировать вариант обработки поворота устройства, путем создания двух Views - для каждой из ориентаций.
Допустим, у меня на экране есть кнопка и текстовое поле, в которое выводится некий хеллоуворлд при нажатии на кнопку.
При создании второго landscape View, и размещении на нем компонентов, соответственно, они не будут иметь никакой связи с кнопкой и текстовым полем из View портретной ориентации.
Привязать одно событие клика для обеих кнопок из двух View проблем не вызвало. А, вот, теперь возникает вопрос:
Задать один reference для двух объектов, понятное дело, нельзя. Так что, получается, при нажатии на кнопку мне надо проверять - какая сейчас ориентация экрана, и обращаться, соответственно,к текстовому полю из View портретной, или ландшафтной ориентации?
Что-то подсказывает мне, что есть более красивое решение. Можете мне что-то посоветовать?

Спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.08.2013, 21:16
Ответы с готовыми решениями:

AdBannerView на все Views
Хочу вставить баннер на большинство views. В основном используются TableView....

Фильтры для обработки фотографий
Народ подскажите как сделать фильтры для обработки фотографий под типа...

После поворота TextView занимает столько же места как и до поворота
собственно как поворачивать средствами xml или в коде я знаю. Проблема в...

Есть ли дизайнер для Views в Razor MVC 4?
Собственно в єтом и вопрос: можно ли открыть представление в режиме дизайнера,...

Как рассчитать поворот угла, зная координаты трех точек до поворота и после поворота угла
Как рассчитать поворот угла (в градусах), зная только координаты трех точек до...

6
Vorona
Peace 2 all shining faces
672 / 534 / 84
Регистрация: 05.03.2010
Сообщений: 1,283
09.08.2013, 21:28 2
воспользуйтесь MVP паттерном
мы так делаем для разных вьюшек на айпаде и айфоне, сохраняя общую логику

Presenter хранит в себе бизнесс-логику
View - это протокол, который описывает общий интерфейс для вьюшек, так же туда будет входить, воможно, xib и ViewController, который строит вьюшку программно и вызывает presenter в нужных местах
ну и Model - она и в Африке модель

Presenter тоже неплохо бы организовать с помошью протокола, а конкретный презентер пусть его имплементирует

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

p.s. конечно можете попробовать посмотреть ReactiveCocoa и MVVM, но лучше остановитесь на более простом (первом) варианте
1
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
09.08.2013, 22:18  [ТС] 3
Спасибо, наконец-то у меня есть повод нырнуть в эту тему.
Все хотел заняться паттернами, и, вот, есть причина))
0
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
09.08.2013, 23:28 4
Vorona, а какая разница между MVC и MVP? Или это синонимы?
0
Vorona
Peace 2 all shining faces
672 / 534 / 84
Регистрация: 05.03.2010
Сообщений: 1,283
10.08.2013, 02:05 5
ну насколько я понимаю, в MVP у вьюхи есть интерфейс, через который она делегирует действия презентеру
например кликнули на кнопку "Save", вьюха отреагировала и вызывала у презентера метод например "onSave", тот что-то там сделал и сказал вьюхе что нужно показать
такой подход позволяет мокать вьюху в юнит-тестах, что делает тестирование проще, и вообще просто заменять вьюхи, сохраняя одну и ту же логику

а вот в iOS понятие MVC немного странное, у нас есть ViewController, который делает все, и интерфейс строит напрямую и с моделью общается и выполняет какую-то бизнес-логику, хотя в идеале он просто должен получать от вьюхи сообщения, что-то делать и возвращать ей результат

еще в MVP презентер получает сообщения от вьюхи и только тогда вызывается, если вьюха ничего не пошлет ему, он так и не будет вызван, а в MVC контроллер сам решает какая вьюха будет показана

на самом деле я и сам немного плаваю в этих отличиях, но знаю что в iOS MVC не тот, который в идеале бывает, потому его стоит заменить на MVP для сохранения логики и вынесения вьюхи в отдельное место
1
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
10.08.2013, 12:01 6
В общем, как я и предполагал, это все-таки синонимы. Просто Apple не особо строго следует своим же принципам. Недавно упоминавшийся UITableViewController - отличная иллюстрация этого.
0
Vorona
Peace 2 all shining faces
672 / 534 / 84
Регистрация: 05.03.2010
Сообщений: 1,283
11.08.2013, 00:18 7
нуу они не совсем синонимы хотя очень и очень похожи, а Apple – да, хотя в Андроид такая же ситуация, тут скорее среда мобильной разработки больше имеет значение, даже на WindowsPhone, если не ошибаюсь, используется MVVM, по крайней мере так было в WPF.NET, откуда многое перенялось в ВП7
0
11.08.2013, 00:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.08.2013, 00:18

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

Два вида кнопой обработки форм
Доброго времени,друзья у меня к вам след вопрос)Сначала я реализовал кнопку...

Программа для пакетного поворота видеофайлов?
Есть несколько видеофайлов, снятых на айфон с поворотом на 90 градусов. Есть ли...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru