私はかなり簡単なことをしようとしていますが、私はそれを行う最良の方法を見ることができません。私は2つのセルのuitableviewを持って、最初はuidatepickerとして設定された入力ビューでコンテキストビューにuitextfieldを持っています。セルは、nsmanageオブジェクトdateプロパティにマップされます。 nsmanagedオブジェクトには、今日の日付と選択された日付の日数の差異に依存するプロパティがあります。この値は、ビューが読み込まれるときに2番目のセルに表示されます。uitableviewcellを実装する方法値は他のuitableviewcellから派生しました
問題は、ユーザーが最初のセルの日付を変更すると、2番目のセルが自動的に更新されないということです。
まず、uitableviewでsetNeedsDisplayを呼び出すことができると思いました。しかし、これはかなり重い手渡しのようです。
私はKVOを読んできましたが、まだ問題の解決策の良い例を見つけることができませんでした。
私はテーブルビューにfetchresultscontrollerを使用しています。私はiPhoneのドキュメントに示されているようにキーパスの依存関係を実装しようとしましたが、これは成功していません。例えば
...
+ (NSSet *)keyPathsForValuesAffectingDaysRemaining
{
NSLog(@"keyPathsForValuesAffectingDaysRemaining");
return [NSSet setWithObjects:@"dateOfOccasion", nil];
}
-(NSNumber *)daysRemaining {
return [self.dateOfOccasion daysFromNow]; //simple calendar calc.
}
誰かが比較的単純な問題への適切な解決策の正しい方向に私を指すでした。
おかげで、
ゲイリー
私はobjectDidChangeメソッドからreloadDataを呼び出していませんでした、行の値を更新した後、あなたのKVOメソッドで行を再ロードすることができます。私は単にtextFieldDidEndEditingメソッドからそれを呼び出しました。 –
@ sqlconsumer.netそれはまた良いです:) – Legolas