1

Airplayミラーリングと分割画面をテストするための非常にシンプルなアプリケーションを作成しようとしています。私のメインビューコントローラーには、ミラーリングモードと分割画面モードを切り替えることを想定したスイッチがあります。これはすべて、システムドックでミラーリングを有効にした後です(つまり、最初にメインドックでミラーリングを有効にしてから、スイッチを使用してミラーモードから分割に移行します)アプリからの画面モード)。最初のスイッチは問題なく動作します-AppleTVに新しい未亡人が表示されますが、デバイスの画面は同じままです。もう一度切り替えると、外観がデバイスの画面に表示されます。この時点では、スイッチがなくなっているため、私にできることは何もありません...(外部画面は、演習のために空白の画面にすぎません)。

誰かが私が間違っていることを理解するのを手伝ってくれますか?私はそれが何か小さいことをかなり確信しています、しかし私が完全に離れていても私は驚かないでしょう...:/

私のコードのいくつか:

AppDelegate:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}

viewcontroller.m:

screenDidChangeはviewDidLoadから呼び出されます。switchActionは、スイッチをタップしたときに呼び出されます。

 - (void)screenDidChange:(NSNotification *)notification
 {

NSArray *screens;
screens = [UIScreen screens];
NSUInteger screenCount = [screens count];

if (screenCount > 1) 
{
    self.extScreen = [screens objectAtIndex:1];    
}
else 
{
    // Release external screen and window
    self.extScreen = nil;
    self.mainWindow = nil;
    [self externalWindow:self.mainWindow];
}
}


- (IBAction)switchAction:(id)sender {

NSArray *screens;
screens = [UIScreen screens];
NSUInteger screenCount = [screens count];



if ([sender isOn] == YES)
{
    //Mirror mode
    self.extScreen = [screens objectAtIndex:1]; 
    [mainWindow makeKeyAndVisible];
}
else {
    //Split Screen mode
    self.extScreen = [screens objectAtIndex:0];
    [mainWindow makeKeyAndVisible];
}

self.extWindow2.hidden = NO;


if (extWindow2 == nil || !CGRectEqualToRect(extWindow2.bounds, [extScreen bounds])) 
{
    extWindow2 = [[UIWindow alloc] initWithFrame:[extScreen bounds]];
    extWindow2.screen = extScreen;
    UIView *view = [[UIView alloc] initWithFrame:[extWindow2 frame]];
    view.backgroundColor = [UIColor blueColor];
    [extWindow2 addSubview:view];
    [extWindow2 makeKeyAndVisible];

}
}
4

0 に答える 0