2011-08-09 14 views
0

私はここで特定の問題に直面しています。私はテーブルビューのデータソースを返すメソッドを記述するプロトコルを持っています。データソースは3つのテーブルビューについて1つのクラスによって生成されます。 1つのセルをタップすると、次のテーブルビューに別のソースなどが表示されます(ポイントを取得したと思います)。目的c:他のクラスに代理人を引き渡す

すべてが最初のテーブルビューでうまく動作しますが、次のテーブルビューに削除を渡すときに、まだ2番目のテーブルのデータソースを取得しません。デリゲートを特定の時点でリリースする必要がありますか?そして、もし私がしなければならないのは、ナビゲーションバーボタン項目がタップされているときに、どうやってそれを取り戻すのですか?

ご意見がありましたら教えてください。

EDIT:

if ([Where isEqualToString:@"System"]) 
{ 
    if ([exchangeDelegate respondsToSelector:@selector(getNewDataSourceForSystem:)]) 
    { 
     [exchangeDelegate getNewDataSourceForSystem: [controlDelegate setBranchNavigation:What]]; 
    } 
} 
    else if ([Where isEqualToString:@"User"]) 
    { 
     if ([exchangeDelegate respondsToSelector:@selector(getNewDataSourceForUser:)]) 
     { 
      [exchangeDelegate getNewDataSourceForUser: [controlDelegate setLeafNavigation:What]]; 
     } 
} 
if ([exchangeDelegate respondsToSelector:@selector(getNewDataSourceForCostumer:)]) 
{ 
    [exchangeDelegate getNewDataSourceForCostumer: [controlDelegate setRootNavigation]]; 
} 

各respondToSelectorは別のクラスになります。

EDIT: *がキャッチされない例外により 'NSInvalidArgumentException'、理由にアプリを終了: - 私はときに私は例外として何を得る厥

を '[costumersのgetNewDataSourceForSystem::]認識されていないセレクタは、インスタンス0x8a3b0e0に送られました' respondsToSelector:@selectorは除外します。

+0

:-)あなたのインスピレーションのための人はあなたには、いくつかのコードを表示することができますありがとうございましたか!ジェネレータクラスは、返すデータソースを区別できますか? – Akshay

+0

ソースが表示されている場合は、おそらく私を打つことをお勧めします:-)問題は、データを送信する正しいクラスを見つけることができなかったので、例外が発生したためです。respondsToSelector:@私のコードにセレクタが、今は2番目のクラスで何も起こらない... – markus

答えて

0

だから、それはそうと、シングルトンを使用すると、私の意見のための私のデータを格納するための適切な方法である:

  • 私はシングルトンを作成しました。
  • シングルトンは私の3つの異なるデータアレイを保持しています。
  • デリゲートは、新しい配列をシングルトンに送信します。
  • 私はシングルトンを介してビューからデータを取得しています。

ことがあるような単純な...

0

-[UITableView reloadData]を呼び出して、現在の状態の無効化について通知しましたか?

また、新しいデータソースをフェッチして設定し、必要に応じてデリゲートするために、setterメソッドをデリゲートしましたか?おそらくこのような何か:

-(void)setDelegate:(id<MYDelagate>)delegate; 
{ 
    myTableView.dataSource = [delegate tableViewDataSource]; 
    myTableView.delegate = [delegate tableViewDelegate]; 
    _delegate = delegate; 
} 
+0

はい私は...最初に見ていた:-) – markus

+0

次に、私は次の論理的なステップで答えを更新します。 – PeyloW

+0

私はその問題を調べなければなりません:-) – markus

関連する問題