1

2つの異なる方法で更新されるテーブルビューがあります。どちらもボタンを介して行われ、実際のところ、どちらも同じクラスの同じIBActionを介して行われます。

これが私の問題です:

ボタンは2つの異なる.xibファイルにあり、テーブルビューと同じxibのボタンは完全に機能しますが、異なるxibのボタンは新しいデータを取得するメソッドを実行しますが、テーブルは更新されません。同じ正確な方法、異なる結果。他のボタンのIBActionを取得するには、IB内のNSObjectをドラッグして、そのクラスをIBActionを含むテーブルビューのクラスに設定し、ボタンに接続しました。

どうすればこれを修正できますか?

4

1 に答える 1

1

2番目のXIBでクラスの2番目の並列オブジェクトを作成しているように聞こえます。ボタンはそのインスタンスにメッセージを送信します。このインスタンスは、適切なクラスのオブジェクトであるため、期待する処理の一部を実行しますが、実際には適切なオブジェクトではなく、ビューに接続されていません。

あなたがする必要があるのは、両方のボタンが同じインスタンスと通信することを確認することです。これは、ターゲットがレスポンダーチェーンにある場合に最も簡単です。ボタンのターゲットをファーストレスポンダーに設定できるはずです。そうすれば、メッセージは適切な場所に届きます。それ以外の場合は、ターゲットへのポインタをXIBに取得する必要があります。たとえば、ファイルの所有者となるオブジェクトのIBOutletとして取得する必要があります。

于 2010-06-15T21:14:32.090 に答える