Должен ли я использовать отдельный UIViewController для всплывающего меню? - PullRequest
0 голосов
/ 13 июня 2018

Довольно теоретический или абстрактный вопрос ...

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

Должен ли я иметь отдельный контроллер представления для обработки / управления всплывающим меню или я должен просто внедритьвсплывающее меню как представление, которое управляется тем же контроллером представления (то есть viewControllerA)?

Причины и против каждого подхода будут высоко оценены.

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Да, вы можете использовать UIViewController в качестве всплывающего окна.

Step1 : Возьмите новый UIViewController на раскадровке и создайте связанный с ним класс.

Шаг 2 : Вы сказали, что после нажатия на кнопку, которую должен показать Popup, затем возьмите кнопку на первом ViewController и напишите ниже код

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
PopupViewController *popupVC = [storyboard instantiateViewControllerWithIdentifier:@"popId"];

BIZPopupViewController *popupViewController = [[BIZPopupViewController alloc] initWithContentViewController:popupVC contentSize:CGSizeMake(300, 300)];

[self presentViewController:popupViewController animated:NO completion:nil];

Он покажет PopupViewController в виде всплывающего окнапо вашему мнению.

Вот ссылка для BIZpopViewController Скопируйте класс в ваш проект, он будет работать.

0 голосов
/ 13 июня 2018

Должен ли я иметь отдельный контроллер вида для управления всплывающим меню или управления им?

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

Что вы получите:

  1. Хорошо структурированные файлы с единственной ответственностью
  2. Проще протестировать и настроить оба элемента

Должен ли я "просто" реализовать всплывающее меню как представление, которое управляется одним и тем жеview controller?

У этого подхода нет преимуществ, как мне кажется.В этом случае вы будете:

  1. Нарушать принцип единоличной ответственности .
  2. "просто" - это будет означать, что вы будете иметь 2 разных представления с управляемыми их жизненными цикламив одном контроллере (просто становится сложнее)
  3. скорее всего это будет Massive View Controller

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

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