Xcode 4:別のファイルのメソッド内のNIBのロード
-
13-12-2019 - |
質問
この質問が小学校であるならば、過去2日間のこのバグに固執しています&私はそれを通過することができなかった。 Xcode 4.3.2
を使用していますbccontroller.mという名前のファイル内の " - (void)プロセス"というメソッドでacontroller.xibという名前のnibをロードしようとしています。
クリアするには、./A / Acontroller.xib(UIView)、./A / acontroller.m、./AController.hディレクトリにコピーしました./B
私はそれが私の質問のために重要かどうかわからないので言及します。
現在、私のフローはフローとして機能します(私の問題になる可能性があります):
- 「購入」ボタン の閲覧量
- ユーザーが "Buynow" という名前のiboutletを持つ「購入」ボタンをクリックする
- "buynow"は "Buy"を呼び出し、それは次に "Process" を呼び出します
-
プロセスは次の点でNIBをロードしようとします(オプション1):
Acontroller * BLAH; 用(バンドル内のIDオブジェクト){ if(iskindofclass:[Acontroller Class]]]) BLAH=(Acontroller *)オブジェクト。 } アサート(Blah!= Nil && "BlahはNILになることはできません)。 [Self.View AddSubView:Blah];
メインって "スレッド1:シグナル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つの選択肢すべてにも同じエラーが発生します。各オプションはメソッド "プロセス"で試行されました。 「プロセス」はB.Mで書かれています。誰かが私がこれを理解するかもしれないようにいくつかの助けを提供することができますか?これらのオプションが失敗した理由に関するガイダンスは私の理解にとって非常に役立ちます。 noobを助けてくれてありがとう!
解決
AController
がUIView
サブクラスの場合、NIBをロードできません。実際にはコントローラがあることを確認しますが、initWithFrame
から、それをビューに追加している方法から、それがそうでない、または誤って処理されているように見えます。