0

2 番目の画面が接続されている場合、通常の iPad 画面 (4:3) 以外に、16:9 ワイドスクリーン形式の UIWindow を含む 2 番目の UIScreen を使用する iPad アプリを作成したいと考えています。
接続にはAppleTVを使用しています。

iPadの画面をテレビにミラーリングしたいだけではありません.4:3の画像なので、16:9のワイドスクリーン全体を使用したいのです。

だから私は始めて、2番目のUIScreenをセットアップしました。ウィンドウは現在、テレビに緑色の背景を持つワイドスクリーン形式で表示されています。

//Check for Second Screen and if available, make a second UIWindow and put it on the      second screen
NSArray* connectedScreens = [UIScreen screens];
NSInteger numberOfScreens = [[UIScreen screens]count];
NSLog(@"Number of screens connected: %d",numberOfScreens);

if (numberOfScreens > 1) {
    //we have a second screen connected, display an extra window on the second screen
    UIScreen* secondScreen = [connectedScreens lastObject];
    UIWindow* secondWindow = [[UIWindow alloc]initWithFrame:secondScreen.bounds];
    secondWindow.backgroundColor = [UIColor greenColor];
    [secondWindow setScreen: secondScreen];
    [secondWindow makeKeyAndVisible];
    self.tvWindow = secondWindow;
}

ここまでは順調ですね。

しかし、ナビゲーション/ビュー階層をセットアップする方法がわかりません。

異なる画面サイズに合わせて最適化された、両方の UIScreens (iPad + TV) に同じデータを表示したい。

表示する必要があるデータはまったく同じで、同様の viewController の異なるインスタンスをあちこちに配置したくないので、ViewController ごとに 2 つの xib ファイルを使用できると考えました。 ' viewController のプロパティと 16:9 ワイドスクリーン テレビ用の 1 つの xib を、同じ viewController の 'tvView' プロパティに入れます。

iPad UIWindow には、さまざまな UIViewController を回転させる UINavigationController があります。

したがって、ViewController を ipad ウィンドウの Navigationcontroller にプッシュすると、対応する tvView を TV-xib から TV 画面の UIWindow に追加できます。

私はここで正しい道を進んでいますか?これをどのように行いますか?

ちょっとしたスケッチ: 階層スケッチを表示 :)

4

1 に答える 1

0

それはほぼ正しいように聞こえます。ユーザーがナビゲーション コントローラーを操作できるようにする場合は、コントローラーとして登録する必要があります。delegateこれにより、iPad でナビゲーション スタックに何が起こっているかを追跡し、それに応じて TV ビューを切り替えることができます。

于 2012-07-10T17:35:13.803 に答える