В моем приложении я использую UITabbarController, который идеально поворачивается ко всем UIInterfaceOrientations во всех контроллерах представления. Но когда я впоследствии добавляю UIView в UIWindow, он не будет добавляться в текущий UIInterfaceOrientation, а всегда будет добавляться в UInterfaceOrientationPortrait (который по умолчанию используется для приложения). Он также не будет поворачиваться в новую ориентацию. Я добавляю ViewController, используя:
LoginViewController *loginViewController = [[LoginViewController alloc] init];
[self.window addSubview:[loginViewController view]];
у меня есть
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
NSLog(@"%@", @"YES IT WILL!");
}
в LoginViewController.m, но там никогда ничего не будет зарегистрировано. Любая идея, почему подвид не будет вращаться?
Боковое смахивание
РЕДАКТИРОВАТЬ: Нашел решение: по-видимому, UIWindow должен иметь только одно подвид, а не больше, иначе все испортится, поэтому я вызываю:
LoginViewController *loginViewController = [[LoginViewController alloc] init];
[tabBarController presentModalViewController:loginViewController animated:YES];
вместо этого, который будет автоматически поворачивать представление loginviewcontrollers.