3

ユーザーがiPadを使用していることを検出するためにBOOLcalledを設定しました。isUsingiPad私はこれを使ってそうしました:

UIDevice* userDevice = [UIDevice currentDevice];
if (userDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad) {
    isUsingiPad = YES;
}

私のアプリケーションが最初に起動すると、使用されているデバイスが私の登録を通過したかどうかを確認します。ある場合は、ユーザーをアプリのメインのViewControllerに送信します。ただし...登録ユーザー(iPadを使用している)が登録し、アプリを閉じてから再度開くと、iPadではなくiPhoneペン先に送信されます。アプリのビューごとに2つのペン先があります。1つはiPhone用、もう1つはiPad用です。2つの各セットを制御する単一のViewControllerがあります。iPhoneかiPadかを処理するコードをすでに配置しました。私の質問はこれです:ユーザーが毎回iPadペン先にアクセスできるようにするには何を追加する必要がありますか?これはどこに追加しますか?この質問を編集して、必要なコードを含めることができます。前もって感謝します。

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:編集:メソッドを更新しました。

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


self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.

UIDevice* userDevice = [UIDevice currentDevice];
if (userDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad) {
    isUsingiPad = YES;
}

if (!isUsingiPad) {
    self.viewController= [[PassportAmericaViewController alloc] initWithNibName:@"PassportAmericaViewController" bundle:nil];
} else {
    self.viewController = [[PassportAmericaViewController alloc] initWithNibName:@"PassportAmericaViewController-iPad" bundle:nil];
}

self.window.rootViewController = self.viewController;

[self.window addSubview:navigationController.view];

[self.window makeKeyAndVisible];

return YES;
}
4

2 に答える 2

1

これは、Appleがこれを達成するためにアプリテンプレートで使用するものであり、あなたのAppDelegates applicationDidFinishLaunchingWithOptions:に実装されています

ここで、ユーザーが毎回正しい画面に戻ることを確認します。セットアップによっては、viewDidLoadまたはでこれを初期化することもできますviewDidAppear

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
        self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil];
    } else {
        self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil];
    }
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    return YES;
}
于 2012-04-03T20:20:03.483 に答える
1

ユニバーサルアプリケーションでiPad/iPhoneのペン先を動的にロードするには、次の命名規則を使用する必要があります。

  • iPhone-MyNibName.xib
  • iPad-MyNibName〜ipad.xib

このようにすると、手動でロードしたり、ifステートメントを実行したりする必要がなくなります。

于 2012-12-10T12:04:35.020 に答える