Я создал окно, чтобы представить на нем контроллер, но в этом контроллере я пытаюсь обработать вращение, поэтому я использовал классы размеров для обработки просмотра в альбомной и портретной ориентации.
Проблема здесь в что этот контроллер представления, представленный над новым окном, не отвечает за делегата UITraitCollection
, поэтому, если я запускаю его, когда симулятор находится в портретном режиме, он не переходит в альбомный режим и наоборот.
Пытался подарить старым окном, работает! Кто-нибудь сталкивался с этой проблемой?
Edit
Когда я изменил rootViewController, добавив себя как root UINavigationController, он работает, я не понимаю, почему что произойдет, если у кого-то есть объяснение, пожалуйста, дайте мне знать?
UINavigationController* nav = [[UINavigationController alloc] initWithRootViewController:self];
[nav setNavigationBarHidden:true];
self.window.rootViewController = nav;
Вот код создания нового окна и добавления к нему контроллера:
- (void)show {
self.window = [[UIWindow alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];
self.window.alpha = 0;
self.window.windowLevel = UIWindowLevelAlert;
self.window.rootViewController = self;
[self.window setHidden:NO];
[UIView animateWithDuration:0.25 animations:^{
self.window.alpha = 1;
}];
}