1

画面にいくつかのボタンを表示するUINavigationControllerがあります。それらはすべて単に次の行を使用します。

myViewController *newView = [[myViewController alloc] initWithNibName:@"myViewController"
                                                                          bundle:nil];
[[self navigationController] pushViewController:newView animated:YES];

次のビューに移行します。私はそのようなViewControllerを1つ持っていますが、iOS5でのみこの行でクラッシュが発生します。iOS6では完全に正常に動作します。困惑しています。クラッシュの詳細はありません。これは、main.m行を強調表示するSIGABRTです。

exitStatus = UIApplicationMain( argc, argv, nil, NSStringFromClass([ApplicationDelegate class]));

私は見当もつかない...

4

3 に答える 3

5
  1. 自動レイアウトのチェックを外す必要があります。

ここに画像の説明を入力してください

  1. また、ここでも変更していることを確認してください。ios5.1を選択してください

ここに画像の説明を入力してください

于 2012-12-05T04:32:56.133 に答える
0

この行を試してください:

myViewController *newView = [[myViewController alloc] initWithNibName:@"myViewController"
                                                                              bundle:[NSBundle mainBundle]];

代わりに:

myViewController *newView = [[myViewController alloc] initWithNibName:@"myViewController"
                                                                          bundle:nil];
于 2012-12-05T06:34:44.413 に答える
0

私は同様の問題を実験しました。ここでは、考慮する必要があると感じる手順を示します。

  • (xibファイルを使用している場合)前述のVenkat Manohar Perepaのように、iOS 6固有の機能であるため、[自動レイアウトの使用]がオフになっていることを確認します。
  • (xibファイルを使用している場合)ビューコントローラーを提示するときに使用されるxibファイルの内容を確認し、iOS6固有のクラス(例:NSLayoutConstraint)がないことを確認します。
  • 最後に(そしてそれが私が直面していた問題でした)、iOS5がインストールされているデバイスでクラッシュが発生するかどうかを確認する必要があります。それでもシミュレーターでクラッシュしない場合は、[iPhoneシミュレーター]> [コンテンツと設定のリセット]を選択して、インストールしたアプリケーションを削除します。
于 2013-04-22T12:25:37.877 に答える