2012-02-29 6 views
0

私は、データと、MutableArrayを更新するUIとcode.mファイルを扱うcode_tab.mファイルを持っています。 code.mが配列を更新するとき、私はconnection_tab.mにリンクされたビューでテーブルを更新したいと思います。内部的に呼び出されたときに期待どおりに動作Xcode別のメソッドからテーブルを更新する

[self.table tableupdate] 

:私は持っていcode_tab.mで機能を持っています。同じ関数がcode.mファイルから呼び出されたとき(配列が更新されたとき)、同じコードがアクセスされているのを見ることはできますが、何も起こりません。

私はcode.hファイルに次の行を有することにより、セットアップへのアクセスがあります。

connection_tab* connectiontab_script; 

をしてから、私は明らかに重要な何かを見逃している

connectiontab_script = [[connection_tab alloc] init]; 
[connectiontab_script tableupdate]; 

とcode.mでそれを呼び出します。あるメソッドが別のメソッドのビジュアル表示を変更することができる方法はありますか?この場合、既に画面上のテーブルを更新しますか?それはおそらく将来的にあなたの頭痛の原因となりますよう、あなたのデータクラスを避ける必要があります

+1

あなたは 'connection_tab'の別のインスタンスを作成していますので、最初に読み込まれたテーブルではなく、見えないテーブルを実際に更新しています。最初の 'connection_tab'への参照を渡すか、デリゲートを使って調べる必要があります。 – GregularExpressions

+0

それは私が起こっているかもしれないと思ったものです。最初のconnection_tabへの参照をどのように渡すのですか? –

+0

あなたのデータクラス 'code'と' connection_tab'がどのように通信するのか教えてください。 – GregularExpressions

答えて

0

技術的MVCを推奨開発の練習で、あなたのビューにメソッドを呼び出します。あなたのようなconnection_tab内部から呼びたい

- (void) initNetworkCommunicationForView:(UIViewController*)passedVC 

しかし、あなたはあなたを介してアクティブなビューへの参照を渡すためにcodeであなたのinitNetworkCommunication方法を修正することによって何をしようとして達成できます: (文が警告を回避している場合)

[appDelegate.connection_script initNetworkCommunicationForView:self]; 

次にcodeに、あなたは何だろう:

if ([passedVC respondsToSelector:@selector(tableupdate)]) { 
    [passedVC performSelector:@selector(tableupdate)]; 
} 

codeクラスの構造によっては、tableupdateコールがinitNetworkCommunicationに含まれていない場合、passedVCを格納するためにクラス全体の変数を作成する必要があります。そして、あなたは、セレクタのものを捨てるとして行くことができる

- (void) initNetworkCommunicationForView:(connection_tab*)passedCT 

PSまた、のようなあなたのconnection_tabクラスに特異的であるようにする方法をカスタマイズすることができ

[passedCT tableupdate]; 

しかし、私はのUIViewControllerと一緒に行きました互換性の理由から。

関連する問題