2015-12-08 10 views
1

На одной странице моего приложения есть кнопка, в которой пользователь может переключаться между двумя режимами. Содержимое страницы должно отличаться в зависимости от выбранного режима. В этом случае неправильно нажать другой контроллер представления - новые компоненты пользовательского интерфейса должны находиться на одной странице.Информация о своп-представлении при нажатии кнопки

Однако я не узнал, как это можно сделать в iOS. Я видел Container Views (который я не мог появиться на экране), который, похоже, имеет другую цель (повторное использование). Я думаю, что я мог бы вручную скрыть/показать каждый из компонентов пользовательского интерфейса в зависимости от режима, но я хочу знать, есть ли более эффективный способ (например, обертывание содержимого в компромиссном представлении и Hide/show only).

Кстати, я ищу решение, которое использует раскадровки (или XIB) как можно больше.

+0

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

ответ

1

Создайте контроллеры представлений для всех ваших разных видов, при необходимости получите их из раскадровки (после нажатия кнопки), добавьте их как детей в свой основной контроллер вида с addChildViewController и добавьте их вид на ваш основной вид. Вы можете оживить этот переход любым способом, как вам нравится, с UIView animateWithDuration.

Когда вы закончите с контроллером вида/просмотра, снимите представление и удалите контроллер представления из его родителя с помощью removeFromParentViewController.

1

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

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil]; 
UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"idVC"]; 

vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
[self presentViewController:vc animated:YES completion:nil]; 

Это переворачивает контроллер представления, кроме того, вы можете отклонить этот вид контроллер и продолжить с нормальным потоком приложения.

Смежные вопросы