У меня есть базовое приложение с UITabBarController в качестве контроллера корневого представления.Когда пользователь приложения не вошел в систему, я показываю модальный контроллер через window!.rootViewController!.present(viewController, animated: true)
в моем AppDelegate
.Это прекрасно работает на всех моделях iPhone, однако на любом iPad происходит следующее:
Цвет фона SignInController виден во время перехода.Теперь возникает странная вещь: когда я меняю представление в Интерфейсном Разработчике на iPad, ошибка исчезает так:
Изменение цвета фона обратнодля прозрачного значения по умолчанию удаляется, по крайней мере, белый фон, однако вид по-прежнему анимируется слева внизу, чего я не хочу.И, кстати, изменение представления в Интерфейсном Разработчике ломает анимацию на всех iPhone.Если его изменить, то это исправит, но снова сломает все iPad.
Это код (использующий ReSwift для управления состоянием):
func newState(state: State) {
switch (previousState.session, state.session) {
case (.loading, .notSignedIn), (.signedIn, .loading):
(window!.rootViewController! as! UITabBarController).selectedIndex = 0
let viewController = storyboard.instantiateViewController(withIdentifier: "SignInViewController")
window!.rootViewController!.present(viewController, animated: true, completion: nil)
default:
// more stuff
break
}
}
РЕДАКТИРОВАТЬ : добавлен фактический код.