2010-11-30 5 views
0

こんにちは
NSIntegerをtableViewコントローラに渡してからバッジを設定したいと思います。
この場合、渡したいNSIntegerは、コアデータ(numberOfRows)で返されたtableViewの行数です。NSIntegerをtableViewコントローラに渡す

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    NSInteger numberOfRows = 0; 

    if ([[fetchedResultsController sections] count] > 0) { 
     id NSFetchedResultsSectionInfo sectionInfo = [[fetchedResultsController sections] objectAtIndex:section]; 
     numberOfRows = [sectionInfo numberOfObjects]; 
    } 

    return numberOfRows; 
}

別のNSIntegerを宣言し、それをtableViewコントローラに渡すにはどうすればよいですか?

おかげで、
マシュー

+0

あなたの質問が正しく理解されているかどうかわかりませんが、上記のコードを使用しないでください。 – Rog

+0

遅れて申し訳ありません...上記のコードでは、私のメインコントローラでコアデータを管理しています。 numberOfRowsの数値を別のtableViewコントローラに渡してメソッドを設定したいのですが... NSUserDefaultsを試してみましたが動作しますが、テーブルビューの行数が変更されるたびに数値は更新されません。 ? – matteodv

答えて

1

あなたが第2のテーブルビューコントローラに2つのフェッチ結果コントローラが必要になる場合がありますように聞こえます。最初のFRCはテーブル自体を管理し、2番目のFRCは最初のテーブルのデータの既存の行数を計算します。

2つ目のtableviewコントローラをFRCの両方のデリゲートとして割り当て、次にどのコントローラが変更を実行して適切な処理を行うかをデリゲートメソッドでテストする必要があります。

+0

どうすればいいですか?この代理人をどのように割り当てることができますか? – matteodv

+0

デリゲートは、通常、tableviewコントローラだけです。コントローラをFRCのデリゲートプロパティに割り当てるだけです。詳細については、NSFetchedResultsControllerDelegateプロトコルを参照してください。 – TechZen

+0

あなたのコメントありがとう...私はこのプロトコルを読む必要がありますが、これの前に、私はこの番号を渡すシングルトンクラスを作成しました。それは動作しますが、行の数を変更したり、新しい行を削除したり追加したりすると、この数は更新されません。どうすればこの数をシングルトンクラスで更新できますか?これは私のコードです:http://pastie.org/1345205 – matteodv

関連する問題