Лучшие практики для экрана входа в Storyboard, обработка очистки данных при выходе

я создаю приложение для iOS, используя раскадровку. Корневым контроллером представления является контроллер панели вкладок. Я'я создаю процесс входа / выхода из системы, и это 'в основном работает нормально, но яУ меня есть несколько вопросов. Мне нужно знать ЛУЧШИЙ способ настроить все это.

Я хочу сделать следующее:

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

Что я'До сих пор мы установили корневой контроллер представления на контроллере панели вкладок и создали собственный переход к моему контроллеру представления входа в систему. Внутри моего класса Tab Bar Controller я проверяю, вошли ли они вviewDidAppear Метод и результат:[self performSegueWithIdentifier:@"pushLogin" sender:self];

Я также настроил уведомление о том, когда необходимо выполнить действие выхода из системы:[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(logoutAccount) name:@"logoutAccount" object:nil];

После выхода из системы я очищаю учетные данные из цепочки для ключей, запускаю[self setSelectedIndex:0] и выполните переход, чтобы снова показать контроллер вида входа в систему.

Это все отлично работает, но ямне интересно:эта логика должна быть в AppDelegate? У меня также есть две проблемы:

Первый раз, когда они запускают приложение, контроллер панели вкладок кратко показывает перед выполнением перехода. Я'мы пытались переместить код вviewWillAppear но переход не сработает так рано.Когда они выходят из системы, все данные все еще находятся внутри всех контроллеров представления. Если они входят в новую учетную запись, данные старой учетной записи все еще отображаются, пока они не обновятся.Мне нужен способ легко это очистить при выходе из системы.

Я открыт для переделки этого. Я'мы рассмотрели вопрос о том, чтобы сделать экран входа в систему корневым контроллером представления или создать контроллер навигации в AppDelegate, чтобы обрабатывать все ...Я просто не уверен, что лучший метод на данный момент.

Ответы на вопрос(8)

Ваш ответ на вопрос