2013-06-07 6 views
3

В настоящее время у меня есть проект, в котором я хочу интегрировать вид входа с SideBarRevealController.Login View with SWRevealViewController

Вот ссылка с SideBarRevealController: https://github.com/John-Lluch/SWRevealViewController

В настоящее время я имею вопрос, представляя свою точку зрения входа, который является стандартом UIViewController.

В ссылке есть 3 примера проектов, но я буду придерживаться первого, для IOS. У меня возникла проблема с пониманием того, какой viewcontroller (SWRevealViewController или мой контроллер loginview) должен быть rootviewcontroller?

Я считаю, что SWRevealViewController должен быть rootviewcontroller, но я не совсем уверен.

Я думаю, мое понимание того, как разработать поток моего приложения с целью входа в систему и MainView выключен .....

Но если это возможно, то как бы я позволяю вид Войти быть представлены до класс SWREVEALVIEWCONTROLLER, который содержит несколько контроллеров view?

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

СПАСИБО СЕЙЧАС !!!

ответ

0

Я также использую SWRevealViewController для бокового меню. У меня также есть аналогичное требование, где можно показать экран входа в систему для существующего пользователя и новый регистрационный номер пользователя. Как я решил эту проблему, это использование нескольких раскадровки. Очень чистое и простое решение. У меня есть сценарий входа в систему и основной файл раскадровки. В настройках проекта отключите загрузку из раскадровки, удалив ключ раскадровки. Теперь в вашем приложении didFinishLaunchingWithOptions, проверьте, был ли пользователь уже зарегистрирован, а затем загрузите главную раскадровку, иначе загрузите раскладку входа. Теперь все левые отклоняются и показывают другую историю, как требуется.

+1

У меня такая же настройка. Ваше решение кажется интересным. Как вы исправляете * отключить загрузку из раскадровки *? Где я могу найти * подсказку *? Проблема, которую я сейчас имею, если я делаю выход из системы (который находится в SWRevealViewController) и должен переключиться на login.storyboard, я получаю сообщение об ошибке «Предупреждение: попытка представить в '. Как вы делаете свой выход из системы? – jerik

+0

Дело в том, когда вы принимаете динамическое решение, то этот контроллер корневого просмотра основной раскадровки становится вашим контроллером корневого приложения вашего приложения. В таком случае, когда вы хотите заменить свой контроллер корневого окна Windows на loginVC, при выходе из системы и аналогичным образом, когда вход в систему будет снова изменен. – cocoaNoob

+0

Для удаления раскадровки по умолчанию, перейдите в цель, информацию о развертывании, затем в главном интерфейсе вы увидите список раскадровки, который вы можете редактировать. – cocoaNoob

2

Для добавления экрана входа в систему перед SWRevealViewController вам необходимо внести изменения в файл AppDelegate.m.

LoginView * lv = [[LoginView alloc] init];

SideMenuViewController *smvc = [[SideMenuViewController alloc]init]; 
UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:lv]; 
UINavigationController *menuVC = [[UINavigationController alloc]initWithRootViewController:smvc]; 

SWRevealViewController *revealController = [[SWRevealViewController alloc]initWithRearViewController:menuVC frontViewController:nav]; 
revealController.delegate = self; 

self.menu = revealController; 
self.window.rootViewController = self.menu; 

К этому вы получите LoginView в качестве rootview и оттуда вы можете перейти к следующему экрану, где вы будете использовать sidemenu действия.

+3

что вы подразумеваете под меню здесь ?? –

0

@Hiren

SideMenuViewController *smvc = [[SideMenuViewController alloc]init]; 
UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:lv]; 
UINavigationController *menuVC = [[UINavigationController alloc]initWithRootViewController:smvc]; 

SWRevealViewController *revealController = [[SWRevealViewController alloc]initWithRearViewController:menuVC frontViewController:nav]; 
revealController.delegate = self; 

self.menu = revealController; 
self.window.rootViewController = self.menu; 

так, что вы говорите, что 1в = все, что имя вашего контроллера входа есть?

+2

Это ответ? –

0

Для решения этой проблемы я использовал следующие шаги.

  1. Создайте ViewController в раскадровке с типом «SWRevealViewController» и сделайте его «контроллером начального представления».
  2. Первый вид, который подключен к SWRevealViewController с segue «sw_front», не добавляет кнопки переключения, чтобы показать ящик. Внедрите процесс входа в этот первый вид.
  3. После входа в режим просмотра вы хотите показать боковой ящик, добавьте кнопку переключения.
  4. Для выхода введите следующую строку кода. self.revealViewController().performSegue(withIdentifier: "sw_front", sender: self)

Как трудно объяснить, у меня есть поток, как я его реализовал. enter image description here