0

私が持っているユニバーサルアプリを開発しています

imageTracker_iPhone.xib
imageTracker_iPad.xib
imageTracker.h
imageTracker.m

AppDelegate_iPhone から imageTracker に移行したい。私はこれを行っていますdidFinishLaunchingWithOptionsが、使用していたこのコードの前では機能しません

imageTracker *vRDi = [[imageTracker alloc] initWithNibName:@"imageTracker_iPhone" bundle:nil];
        [self.view addSubview:vRDi.view]; 

しかし、構造体または共用体ではないメンバー 'ビュー' のエラー要求が発生しました 。コードが似ていても

[window addSubview:vRDi.view];

今、機能は以下のようで、機能していません。AppDeligate から imageTracker に移行したい。助けてください

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {            

    [window addSubview:imageTracker.view];    
    [self.window makeKeyAndVisible];

    return YES;    
}

この場合、imageTracker_iPhone には移動しません。これは、このファイルの移動先が指定されていないためです。そのため、imageTracker_iPhone または imageTracker_iPad のどちらのファイルに移動するかを指定する方法を知りたいと考えています。

4

2 に答える 2

0

おそらく、デリゲート ウィンドウの rootViewController を設定して、最初のコントローラーをアクティブにする必要があります。(ストーリーボードではない単一のコントローラー テンプレートから新しいテスト アプリを作成する場合は、didFinishLaunchingWithOptions: で必要な種類のコードを確認できます。)

編集:実際には、それよりもさらに簡単です。単一のビュー コントローラー プロジェクトを作成するときにユニバーサル アプリを指定すると、デバイスの種類をテストし、一致する .xib ファイルを読み込むための正確なコードが作成されます。(少なくとも Xcode 4.2。)

于 2012-04-03T13:29:22.767 に答える
0

あなたのコードは次のようになります

imageTracker *vRDi;
Bool isiPhone = UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone;
if(isiPhone)
  vRDi = [[imageTracker alloc] initWithNibName:@"imageTracker_iPhone";
else
  vRDi = [[imageTracker alloc] initWithNibName:@"imageTracker_iPad";

xibとファイル所有者の両方の接続ビューアウトレットが「imageTracker」クラスであることを確認してください。

于 2012-04-03T14:13:08.363 に答える