Экраны UIScreen всегда возвращают 1 экран

Я пытаюсь отобразить изображение на Apple TV с помощью Airplay без режима зеркального отображения. Но метод [UIScreen screens] всегда возвращает 1 экран (основной экран), когда зеркалирование выключено. Я хочу, чтобы мое изображение отображалось так же, как приложение Photo (Airplay без зеркального отображения).

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(screenDidConnect:) name:UIScreenDidConnectNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(screenDidDisconnect:) name:UIScreenDidDisconnectNotification object:nil];

Я использовал их, но они работают только при включенном зеркалировании.

Пожалуйста помогите. Большое спасибо! Я использую Apple TV1 и iPad 2 (iOS 5.0.1)


person Mr Phuc 87    schedule 09.07.2012    source источник


Ответы (1)


Ну, это действительно немного вводит в заблуждение. Вы должны действовать следующим образом:

  • Опция зеркального отображения Airplay должна быть включена.
  • затем вы создаете новый UIWindow и прикрепляете его ко второму экрану
  • как только вы отправляете makeKeyAndVisible этому новому UIWindow, он переопределяет зеркальное отображение и показывает новый контент.
  • Вы можете добавить представления или корневой контроллер представления, как в основной части приложения.

Вот код:

UIScreen *secondScreen = [[UIScreen screens] objectAtIndex:1];
self.secondWindow = [[UIWindow alloc] initWithFrame:secondScreen.bounds];
[self.secondWindow setScreen:secondScreen];
[self.secondWindow setBackgroundColor:[UIColor greenColor]];
[self.secondWindow makeKeyAndVisible];
person Tytus Suski    schedule 20.08.2012
comment
Кроме того, вы не можете включить зеркалирование AirPlay из своего приложения. stackoverflow.com/questions/8786080/ - person Steven Stefanik; 27.08.2012