У меня есть UIViewController в navigationController. Все, что я хочу, это когда я поворачиваюсь из пейзажа в портрет, чтобы изменить вид на другой, принадлежащий другому контроллеру вида (еще одна вкладка из контроллера нижней панели вкладок).
Я сделал это, используя следующий код:
-(void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{
if(UIInterfaceOrientationIsPortrait(toInterfaceOrientation)){
UIViewController *controller = [[[UIApplication sharedApplication] delegate].tabBarController.viewControllers objectAtIndex : 1];
[UIView beginAnimations: nil context: nil];
[[self view] setAlpha:0.0];
[[[UIApplication sharedApplication] delegate].tabBarController setSelectedViewController:controller];
[UIView commitAnimations];
}
}
Все просто отлично, но я хочу управлять переключением видов следующим образом:
- при вращении я хочу, чтобы текущий вид исчезал, а второй появлялся (например, исчезал). - это до фактического вращения.
Проблема в том, что текущий вид не исчезает сразу, он сохраняется в течение примерно 0,2 секунды в процессе вращения.
[[self view] setAlpha: 0.0]; здесь не работает - я думаю, что он снова изменяется, чтобы быть видимым блоком анимации дефалута, который выполняется каждым видом при его вращении.
Может ли кто-нибудь дать мне решение?
Цените,
Алекс.