В настоящее время я решаю эту проблему: / Я уже пробовал решения из других SO-тем по этой теме, но пока не повезло.
Вот что не так:
У меня есть UINavigationController, который выдвигает View A, из View A я могу нажать кнопку, чтобы нажать View B - работает отлично. Но когда я нажимаю Вид B, затем поворачиваю экран в ландшафтный режим и затем нажимаю кнопку «Назад», я получаю следующий вывод в консоли, и переключение вида не анимируется, просто переключается с B обратно на A:
2012-01-02 20:50:42.866 [13345:f803] Unbalanced calls to begin/end appearance transitions for <DimensionConversionViewController: 0x68831f0>.
2012-01-02 20:50:42.868 [13345:f803] attempt to dismiss modal view controller whose view does not currently appear. self = <UINavigationController: 0x6b541a0> modalViewController = <UISnapshotModalViewController: 0x6da5190>
Вот как я помещаю View B в стек:
- (void) showConverter:(id)sender {
[self.navigationController pushViewController:converter animated:YES];
}
-ViewDidLoad of View B:
- (void) viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateInterface) name:@"UIDeviceOrientationDidChangeNotification" object:nil];
// ... Update text fields ...
[self updateInterface];
}
-viewDidUnload из представления B:
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"UIDeviceOrientationDidChangeNotification" object:nil];
}
Если у вас есть вопросы или вам нужно больше примеров кода, сообщите мне.
Заранее спасибо за любую помощь: -)