Я создаю свое приложение, которое просит пользователя пройти аутентификацию. Если сеанс с сервером истек, он выдает контроллер входа. Пока все хорошо. Проблема в том, что когда пользователь открывает приложение, а первый экран (пустой вид таблицы) отображается, то экран входа. Я знаю, что это детали, но я думаю, что это неправильно.Представление 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 я получаю предупреждение: «Представление контроллеров отображения на отдельных контроллерах зрения не рекомендуется.» и проблема все еще существует.
Кто-нибудь знает, как можно решить эту проблему?
Что относительно '-presentViewController: анимированный: завершение:' с 'анимированным == НЕТ' (сразу) первым делом внутри' -viewDidAppear'? Отображается ли ваш базовый контроллер представлений для некоторых фреймов или он спрятан? –
Возможно, более чистый подход состоял бы в том, чтобы по умолчанию ваш первый контроллер представлений отображался на каком-то экране «Подождите секунду ... (проверка входа в систему)», а оттуда переход к различным контроллерам представлений в зависимости от результата. –
Это намного быстрее, но отображается пустой вид. О «Подождите секунду» Я думаю, что это хорошая идея, потому что мой класс LoginLaunch возвращается к контроллеру представления, который вызвал его, как только пользователь вошел в систему. Я собираюсь заменить «Подождать секунду», вид, идентичный экрану Splash, поэтому пользователь не заметит разницы. Можете ли вы ответить на этот ответ? – BlackM