0

重複の可能性:
iOS の現在のデバイスに依存する単一クラスの異なる xib をロードするにはどうすればよいですか?

私は 1 つのユニバーサル アプリを開発しました。iPhone 用のアプリケーションを実装しました。今度は iPad 用に実装する必要があります。データ処理に関する完全なコードがView Controllerにあり、view-controller.xibがiPhoneに使用されています。iPad のコードを使用するにはどうすればよいですか。

iPadでアプリケーションを実行すると、ipad xibを取得できますが、データが表示されません。

viewControllerに存在するデータを取得するにはどうすればよいですか?

事前に感謝..

4

3 に答える 3

1

このメソッドをアプリデリゲートに追加します

 +(NSString *)getNibName:(NSString *)strNibName
    {
        if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad)
            return strNibName;
        else
            NSLog(@"%@",[NSString stringWithFormat:@"%@_iphone",strNibName]);
            return [NSString stringWithFormat:@"%@_iphone",strNibName];
    }

必要なときにいつでもこれを呼び出します

    ViewController *obj=[[ViewController alloc] initWithNibName:[AppDelegate getNibName:@"ViewController"] bundle:nil];
[self.navigationController pushViewController:obj animated:YES];
于 2013-01-17T10:13:10.687 に答える
1

iOS には、NIBiPad と iPhone で異なる簡単な読み込み方法があります。

NIB次のようにファイルに名前を付けるとViewController~ipad.xibViewController~iphone.xibiOS は適切なファイルをロードします。

~ipadビューをユニバーサルプロジェクトに追加するだけです。これは、NIBデバイス指定子なしで、他のすべてのデバイスにロードされます。

likeをロードするだけですUIViewController

 [[UIViewController alloc] alloc] initWithNibName:@"ViewController" bundle:nil];

これは画像でも機能します。

back.png //Normal images
back@2x.png // Retina images
back~ipad.png // iPad normal image
back@2x~ipad.png // Retina iPad images
于 2013-01-17T10:18:31.857 に答える
0

このために最初に確認する必要があるのは、iPadxibのファイル所有者がiPhonexibのコントローラーと同じである必要があるということです。次に、iPhone xibコンポーネントで行ったようにすべての接続を確立すると、これが機能するはずです。

于 2013-01-17T10:11:15.067 に答える