0

ストーリーボードに 2 つの UIViewController があり、最初の (ローカル ビュー コントローラー) が iPad ウィンドウに表示されます。また、ストーリーボードにも 2 つ目があります (External View Controller)

ビューと 2 番目の UIViewController (外部ビュー コントローラー) のコンテンツを、外部ディスプレイに送信するために作成した別のウィンドウに送信したいと考えています。

UIwindow を作成して外部ディスプレイ (UIScreen = 1) に送信し、そこにビューを追加してから、ラベルなどを適切に追加できます。(セカンドディスプレイに表示されます)

しかし、外部ディスプレイ用に作成した Windows に UIviewcontroller の「ビュー」(すべてのコンテンツを含む) を送信したい場合、それが表示されません。

私はこれを行うことができますか?

次のコードを見てください。

//this code is at my main view controller

#import "ASHExternalViewController.h" //for External View Controller

if ([[UIScreen screens] count] > 1)
    {
        // Associate the window with the second screen.
        // The main screen is always at index 0.
        UIScreen*    secondScreen = [[UIScreen screens] objectAtIndex:1];
        CGRect        screenBounds = secondScreen.bounds;

        //Alloc external window
 UIWindow *externalWindow = [[UIWindow alloc] initWithFrame:screenBounds];
        externalWindow.screen = secondScreen;

        // Add a white background View to the window
        UIView*            whiteField = [[UIView alloc] initWithFrame:screenBounds];
        whiteField.backgroundColor = [UIColor whiteColor];

        [externalWindow addSubview:whiteField];


//up to this point all OK, I can see the white background view in the external display

        //
        //Add uiviewcontoller at storyborad to external window 
ASHExternalViewController *_externalView = [[ASHExternalViewController alloc] initWithNibName:@"ASHExternalViewController" bundle:nil];



        [whiteField addSubview: externalView.view];


//does no add the view in the external UIViewController in story board

        // Go ahead and show the window.
        externalWindow.hidden = NO;
    }
4

1 に答える 1

0

これは、viewController のビュー階層をウィンドウに追加する正しい方法ではありません。

iOS 4 以降では、次のように設定する必要があります。rootViewController

externalWindow.rootViewController = externalViewController;

また、実際にはストーリーボードから viewController をロードしていないことにも注意してください。

于 2012-09-27T23:49:56.873 に答える