Я пишу приложение, в котором нужно модально отображать экран входа в систему, а в приложении есть панель вкладок.
Я добавил панель вкладок непосредственно в окно UIWindow.Чтобы перевернуть его в новое представление (представление входа в систему), я переопределил applicationDidFinishLaunching, где я проверяю, есть ли у пользователя учетные данные для входа в систему, тогда я не отображаю экран входа в систему в противном случае (при условии первого использования или выхода из системы), я модально представляю экран входа в систему.Я дал возможность выхода из системы на вкладке настроек внутри приложения.
Я использую вызов [[UIApplication sharedApplication] делегат], чтобы получить экземпляр делегата приложения при первом входе пользователя в систему.Таким образом, я получаю доступ к tabBarController, который является частью Application Delegate (как это обычно бывает).Однако, когда я пытаюсь вызвать свой loginViewController из опции выхода из системы в настройках (где-то в будущем жизненном цикле), тот же вызов [[UIApplication sharedApplication] делегат] возвращает мне делегата, для которого я не могу использовать ни один из методов, которые яопределили.Это дает мне ошибку «нераспознанный селектор, отправленный экземпляру» во время выполнения.
Мне нужно понять, что именно возвращает вызов [[UIApplication sharedApplication] делегат]?Изменяется ли объект делегата, который он возвращает, в течение периода жизненного цикла приложения?ИЛИ это единственный экземпляр в течение жизненного цикла приложения?
И во-вторых, чтобы решить эту проблему, я должен добавить tabBar к представлению (содержится в главном окне) вместо того, чтобы добавлять его непосредственно в UIWindow (как это было сделано)по шаблону для приложения Tab Bar и, кажется, стандартная практика).Есть ли известные проблемы с этим подходом ИЛИ это нормально.Кто-нибудь пробовал это?Пожалуйста, дайте мне знать.
Спасибо Dev.