0

特定のビューコントローラーから IBaction を呼び出すとアプリがクラッシュするという問題がありますが、他の場所で目的の結果を得ることができます。

基本的に、タブバーコントローラーに埋め込まれたナビゲーションコントローラーがあります。ナビゲーション コントローラーの最初のビューから IBActions を呼び出すと正常に動作しますが、initWithNib を使用してビューを作成し、それを navcontroller スタックにプッシュしてから、プッシュしたビュー コントローラーのインスタンスで IBAction を呼び出そうとすると、アプリのクラッシュをスタックします。

アプリが最初に読み込まれると、メニューバーに「x」ボタンがあり、アドレス帳ピッカーが表示されます。これはうまくいきます。メニューバーの「新規」ボタンをクリックすると、適切なビューが作成され、スタックにプッシュされます。この新しいビューには、「select bill to」というボタンが 1 つあります。これは、IBAction 呼び出しにログ ステートメントしかありませんが、それでもクラッシュを引き起こします。「請求先を選択」ボタンの IBAction は、そのビューのビューコントローラー内の場所です。

これを解く助けがあれば幸いです。

ソースはhttp://www.swnsn.com/S4X.zipにあります。

4

2 に答える 2

0

カスタムサブクラスではなく、UIViewControllerのインスタンスにpickBillTo:を送信しようとしています。

FirstViewController.mで、次を変更します。

UIViewController *newView = [[UIViewController alloc] initWithNibName:@"NewOrderView" bundle:nil];

に:

NewOrderView *newView = [[NewOrderView alloc] initWithNibName:@"NewOrderView" bundle:nil];

NewOrderView.hもインポートする必要があります。おそらく、そのクラスの名前をNewOrderViewControllerに変更し、変数にnewViewControllerという名前を付ける必要があります。これは、ビューではなくコントローラーであるためです。

于 2010-07-09T06:33:04.167 に答える
0

私はただの初心者です。だから私は私の提案に正しくないかもしれません。

A.

Debugger コンソールを確認したところ、次のエラーが 'NSInvalidArgumentException' でした。

B.

-(IBAction)pickBillTo:(id) selector{ // Your code
-(IBAction)pickBillTo:(id) sender{ // my suggestion

C.

ボタン、firstName、lastName、number のメモリが解放されていません

于 2010-07-09T03:20:45.577 に答える