0

x code 4.6 SDK 6.1 にアップグレードし、現在

[self.tabBarController presentViewController:loginViewController animated:YES completion:nil];

ねじ切りです。

このコードは 6.0 以下のシミュレーターでは 6.0 で動作しましたが、6.0 と 6.1 はクラッシュし、5.1 以下のシミュレーターは正常に動作します。

基本的に、私のアプリのデリケートでは、タブバーを呼び出してから、その上にログイン画面を実行して、それが消えるまで実行します。

ここに画像の説明を入力

編集:私はどこでも AutoLayout を使用していません。

4

1 に答える 1

0

~iPad/~iPhone を xib 名に追加すると、どの xib を自動的に使用するかをユニバーサル アプリで選択できるという印象を受けました。5.1 シミュレーターではそうですが、6 以降ではそうではありません。

ここに正しいコードがあります。

LoginViewController *loginViewController;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController_iPhone" bundle:nil];
    viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController_iPhone" bundle:nil];
    loginViewController = [[LoginViewController alloc] initWithNibName:@"LoginViewController~iPhone" bundle:nil];
} else {
    viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController_iPad" bundle:nil];
    viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController_iPad" bundle:nil];
    loginViewController = [[LoginViewController alloc] initWithNibName:@"LoginViewController~iPad" bundle:nil];
}
于 2013-02-05T16:08:57.430 に答える