В моем приложении я использую UITabbarController, который прекрасно поворачивается ко всем UIInterfaceOrientations во всех viewcontrollers. Но когда я добавляю 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, но никогда ничего не регистрируется. Любая идея, почему подпредставление не будет вращаться?
Sideswipe
EDIT:
Нашел решение:
По-видимому, в UIWindow должно быть только одно подпредставление, но не больше, иначе все испортится, поэтому я звоню:
LoginViewController *loginViewController = [[LoginViewController alloc] init];
[tabBarController presentModalViewController:loginViewController animated:YES];
вместо этого, который будет автоматически просматривать представление loginviewcontrollers.