通常、実際には簡単なタスクのように聞こえます。ビューがあり、別のビューで変更を加えた後にデータをリロードするとします。しかし:それはUITableView
ではなく、私はInterfaceBuilde
を使用しなかった、ビューはプログラムによって作成されます。 TextFieldに表示される値はNSDictionary
に保持されます。もう一方のビューでは、表示される値のキーが変更されるため、ビューが再び表示される場合は新しい値を表示したいと考えています。だから、ここに私のコードは次のとおりです。一般的なUIViewでデータを再読み込み
- (void)loadView
{
...
NSMutableDictionary *selection = [[ValueDispatcher dispatcher] selectionIndex];
NSDictionary *labels = [[ValueDispatcher dispatcher] labelDic];
NSDictionary *values = [[ValueDispatcher dispatcher] valDic];
NSEnumerator *theKeys = [labels keyEnumerator];
while (key = [theKeys nextObject])
{
CGRect frame = CGRectMake(10, i, 300, 30);
UILabel *label = [[UILabel alloc] initWithFrame:frame];
[label setText:[labels objectForKey:key]];
[[self view] addSubview:label];
CGRect fieldFrame = CGRectMake(10, i + 40, 300, 30);
textField = [[UITextField alloc] initWithFrame:fieldFrame];
[textField setText:[[values objectForKey:key] objectForKey:[selection objectForKey:key]]];
[[self view] addSubview:textField];
}
....
私の見解は、古い値がdisplayesと何も変わってまだイスト戻ったとき。どちらの方法を使うべきですか?私はすでにreloadInputViewsを試してみましたが、動作しませんでした。私が知っているだけの他のメソッド(reloadData)はTableViewのためにしか使えません...
'loadView'ではなく' viewWillAppear: 'で値を設定することができます。 – Kjuly