У меня есть приложение для iPad, которое работает между двумя состояниями, одно из которых использует SplitView, другое - TableView.
В настоящее время у меня есть один объект UIWindow, и я переключаюсь между представлениями с помощью следующего кода
-(void) switchToStateA {
[viewControllerB.view removeFromSuperview];
[window addSubview:viewControllerA.view];
}
-(void) switchToStateB {
[viewControllerA.view removeFromSuperview];
[window viewControllerB.view];
}
Все работает нормально, если я не меняю ориентацию устройства.После изменения ориентации и переключения состояний состояние, которое не было активным во время изменения, все еще остается в рамке своего старого состояния (оставляя черные области на краю дисплея).Если я снова изменю ориентацию, новое состояние будет исправлено.
Я попытался добавить
[viewControllerA.view setNeedsLayout];
после смены видов, но это не дало эффекта.
Как убедиться, что контроллеры фонового представления получают обратный вызов ориентации, или как вызвать «обновление» при переключении состояния?