Раскадровка iOS с условным отображением представлений

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

Первый ViewController в этом примере на самом деле является контроллером разделенного представления.

В настоящее время в приложении для iPad, когда пользователь нажимает кнопку «Экспорт функций», я условно запрашиваю переход на основе некоторого кода/проверок, которые я запускаю

    [self performSegueWithIdentifier:@"subscribe" sender:self];
    [self performSegueWithIdentifier:@"filterOptions" sender:self];
    [self performSegueWithIdentifier:@"showExportedDoc" sender:self];

Однако я не уверен, что у меня должно быть 3 навигационных контроллера, а также, когда пользователь нажимает кнопку «Купить» в контроллере просмотра подписки, он переходит в представление «Параметры фильтра», которое фактически вложено в другой контроллер навигации.

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

Спасибо

Макет раскадровки


person MonkeyBlue    schedule 06.12.2013    source источник
comment
Я не уверен в вашей общей структуре, но у вас есть проблема с тем, что № 1 переходит в № 2, а затем № 2 возвращается в № 1. Вы не должны возвращаться к контроллеру, с которого вы пришли, если вы не используете раскрутку перехода или не возвращаетесь в код (путем отклонения или выталкивания). Каждый раз, когда вы делаете переход, вы создаете новый экземпляр контроллера, к которому собираетесь.   -  person rdelmar    schedule 06.12.2013
comment
Привет. Спасибо за ответ. Я обновил снимок экрана, так как формулировка была неправильной. Переход № 1 к № 2 и наоборот определенно был частью, в которой я не был уверен, особенно из-за того, что он пропускал навигационный контроллер, из которого он произошел.   -  person MonkeyBlue    schedule 06.12.2013
comment
Вы должны помнить, что все переходы будут создавать экземпляр нового контроллера представления, поэтому, когда вы попытаетесь вернуться, это будет тот же контроллер представления, с которого вы пришли.   -  person andykkt    schedule 06.12.2013


Ответы (1)


... а также, когда пользователь нажимает кнопку «Купить» в контроллере просмотра подписки, он переходит к представлению «Параметры фильтра», которое фактически вложено в другой контроллер навигации.

Ну, я думаю, у вас есть некоторое непонимание здесь. Тот факт, что контроллер представления параметров фильтра встроен в контроллер навигации в вашей раскадровке, не означает, что он будет создан с помощью UINavigationController, когда вы нажимаете его в текущем контроллере навигации (хотя это будет так, если вы подключите перейти к UINavigationController, в который он встроен).

Чтобы ответить на ваш первоначальный вопрос, я не вижу здесь правильного и неправильного подхода. Все зависит от структуры, которую вы хотите иметь. Что касается меня, я бы предпочел иметь только один UINavigationController, который управляет всем (установите его в качестве начального контроллера представления и встройте в него свой домашний контроллер представления). Это обеспечит пользователю более последовательную навигацию, а также более последовательный внешний вид (панель навигации будет отображаться с самого начала).

person Mamouneyya    schedule 21.10.2017