Мое приложение запускает второй экран (внешний монитор), но я вижу некоторые «странные» вещи относительно вращения (вещи, которые не происходят на iOS7)Проблемы с автозагрузкой со вторым UIScreen на iOS8.0 (и 8.1)
Если я запускаю приложение (и подключаю второй экран) в альбомной ориентации, то нажмите кнопку «домой», чтобы поместить приложение в фоновый режим, затем снова откройте приложение, а второй экран (прикрепленный к монитору) повернут на 90 degress и использует только половину экрана. Никакое количество последующих вращений не исправляет это.
Я довольно уверен, что это ошибка, но я был бы рад узнать об этом иначе. Ниже приведен код для его воспроизведения в простом приложении с одним представлением.
Благодаря
@interface AppDelegate()
@property (nonatomic, strong) UIWindow* externalWindow;
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(screenDidConnect:) name:UIScreenDidConnectNotification object:nil];
UIScreen* externalScreen = ([UIScreen screens].count > 1 ? [[UIScreen screens] objectAtIndex:1] : nil);
if (externalScreen)
{
[self setupExternalScreen:externalScreen];
}
return YES;
}
- (void) screenDidConnect:(NSNotification *)aNotification
{
UIScreen* externalScreen = (UIScreen*)aNotification.object;
[self setupExternalScreen:externalScreen];
}
- (void)setupExternalScreen:(UIScreen*)externalScreen
{
externalScreen.currentMode = externalScreen.preferredMode;
self.externalWindow = [[UIWindow alloc] initWithFrame:externalScreen.bounds];
self.externalWindow.screen = externalScreen;
self.externalWindow.clipsToBounds = YES;
self.externalWindow.hidden = NO;
[self.externalWindow makeKeyAndVisible];
UIViewController* externalViewController = [[UIViewController alloc] initWithNibName:nil bundle:nil];
externalViewController.view.backgroundColor = [UIColor redColor];
self.externalWindow.rootViewController = externalViewController;
}
@end
одна другая ошибка - не сделать внешний UIWindow «ключ» - это портит много первых Ответчик вещей. – Scotty