1

この質問が初歩的なものでしたら申し訳ありませんが、私は過去 2 日間このバグで立ち往生しており、それを乗り越えることができませんでした。Xcode 4.3.2 を使用しています

BController.m という名前のファイルの「- (void) プロセス」というメソッドで、AController.xib という名前の nib をロードしようとしています。

明確にするために、./A/AController.xib (UIView)、./A/AController.m、./A/AController.h をディレクトリ ./B にコピーしました。

私の質問にとって重要かどうかわからないので、これについてのみ言及します。

現在、私のフローはフローとして機能します(これは私の問題である可能性があります):

  • ビューに「購入」ボタンが表示される
  • ユーザーは、「buyNow」という名前のIBOutletを持つ「購入」ボタンをクリックします
  • 「buyNow」は「buy」を呼び出し、次に「process」を呼び出します
  • 次に、プロセスは次の方法で nib をロードしようとします (オプション 1):

    AController *何とか; for (id object in bundle){ if ([object isKindOfClass:[AController クラス]]) blah = (AController *) object; } assert(何とか != nil && "何とかゼロにすることはできません"); [self.view addSubView: 何とか];

ここで得られるエラーは、main.m の「Thread 1: signal SIGABRT」です。私も試しました (オプション 2)。

AController *myView = [[AController alloc] initWithFrame:self.view.bounds];
[self.view addSubview:myView];
[AController release];

そして (オプション 3)

AController * vc = [[AController alloc] initWithNibBundle:@"AController" bundle:nil];    [self.nc pushViewController:vc animated:NO];

3 つの選択肢すべてで同じエラーが発生します。各オプションは、メソッド「プロセス」で試行されました。「プロセス」は Bm で書かれています。これを理解できるように、誰か助けてもらえますか? これらのオプションが失敗した理由に関するガイダンスは、私の理解に非常に役立ち、非常に高く評価されます。初心者を助けてくれてありがとう!

4

1 に答える 1

1

AControllerがサブクラスの場合UIView、NIB をロードできません。それが実際にはコントローラーであることを確認しinitWithFrameますが、ビューに追加する方法からすると、コントローラーではないか、正しく処理されていないように見えます。

于 2012-10-03T18:50:32.560 に答える