2012-07-28 5 views
1

.xib 파일을 사용하지 않고 내 iOS 앱에서 외부 디스플레이를 지원하려고합니다. 내가이 프로그램을 실행할 때ios 외부 디스플레이 프로그래밍 방식으로

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ 
    if ([[UIScreen screens] count] > 1){ 
     externalScreen = [[UIScreen screens] objectAtIndex:1]; 
     UIScreenMode *current = [[[[UIScreen screens]objectAtIndex:1]availableModes]objectAtIndex:0]; 
     externalScreen.currentMode = current; 
     externalWindow = [[UIWindow alloc] initWithFrame:[externalScreen bounds]]; 
     externalWindow.screen = externalScreen; 
     externalWindow.clipsToBounds = YES; 

     extController = [[ExternalController alloc] init]; 
     [externalWindow addSubview:extController.view]; 
     [externalWindow makeKeyAndVisible]; 
    } 
    self.window = [[UIWindow alloc] initWithFrame:[[[UIScreen screens] objectAtIndex:0] bounds]]; 

    mainController = [[ViewController alloc] init]; 
    [self.window addSubview:mainController.view]; 
    self.window.backgroundColor = [UIColor whiteColor]; 
    [self.window makeKeyAndVisible]; 
} 

, TV 출력 화면이 즉시 종료됩니다 :

지금 내 코드는 다음이 포함되어 있습니다. 내가이 줄을 언급하는 경우 : 화면

//self.window = [[UIWindow alloc] initWithFrame:[[[UIScreen screens] objectAtIndex:0] bounds]]; 

TV 출력이 제대로 작동하지만 물론 난 내 시뮬레이터 화면에 아무 것도 나타나지합니다.

누구에게 내가 무엇을해야하는지 알지 못합니까? 미리 감사드립니다!

답변

3

GOODub - https://github.com/JohnGoodstadt/TVOut에있는 샘플 소스 코드 TVOut을 사용해 보시기 바랍니다.

당신과 비슷한 코드를 사용하지만 복사하여 자신의 코드에서 호출 할 수있는 클래스로 패키지되어 있습니다.

디스플레이 문제가 해결됩니다. 그런데 나는 'didFinishLaunchingWithOptions'에서처럼 초기 코드를 작성하지는 않지만 나중에 첫 번째 뷰 컨트롤러에서 코드를 작성합니다.

+0

감사합니다. 나는 첫 번째 뷰 컨트롤러의 viewDidLoad로 감지를 옮겼으며 작동했다. – phantomhive

관련 문제