2015-01-09 3 views
1

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

Это мой MainViewController, который находится под навигационным контроллером. Код:

-(void)viewDidAppear:(BOOL)animated{ 
NSLog(@"Username: %@",[MMCurrentUser email]); 

//Check if the user is logged and shows the sites else it shows the login screen 

if(![MMCurrentUser email]){ 

    LoginLaunch *ll; 
    ll= [[LoginLaunch alloc]initLoginScreenFrom:self]; 

}} 

Если я ставлю этот код в willAppear я получаю предупреждение: «Представление контроллеров отображения на отдельных контроллерах зрения не рекомендуется.» и проблема все еще существует.

Кто-нибудь знает, как можно решить эту проблему?

+0

Что относительно '-presentViewController: анимированный: завершение:' с 'анимированным == НЕТ' (сразу) первым делом внутри' -viewDidAppear'? Отображается ли ваш базовый контроллер представлений для некоторых фреймов или он спрятан? –

+1

Возможно, более чистый подход состоял бы в том, чтобы по умолчанию ваш первый контроллер представлений отображался на каком-то экране «Подождите секунду ... (проверка входа в систему)», а оттуда переход к различным контроллерам представлений в зависимости от результата. –

+1

Это намного быстрее, но отображается пустой вид. О «Подождите секунду» Я думаю, что это хорошая идея, потому что мой класс LoginLaunch возвращается к контроллеру представления, который вызвал его, как только пользователь вошел в систему. Я собираюсь заменить «Подождать секунду», вид, идентичный экрану Splash, поэтому пользователь не заметит разницы. Можете ли вы ответить на этот ответ? – BlackM

ответ

1

Возможно, чистый подход будет заключаться в том, чтобы ваш первый контроллер представления выглядел как-то вроде «Подождите секунду ... (проверка входа в систему)» или лучше, как вы упомянули в комментариях, - плавное продолжение вашего запуск изображения; а оттуда, переход к различным контроллерам зрения в зависимости от результата аутентификации:

  • успеха: перейти к навигации зрения контроллера/таблица контроллера.
  • Неисправность: Перейти к контроллеру «входа».
Смежные вопросы