Обычно это действительно звучит как совершенно простая задача: у меня есть представление, и я хочу перезагрузить его данные после того, как они были изменены в другом представлении.Но: это не UITableView
, и я не использовал InterfaceBuilde
, представление создается программно.Значения, отображаемые в текстовых полях, хранятся в NSDictionary
.В другом представлении ключ для отображаемого значения изменяется, поэтому я хотел бы просмотреть новое значение, если представление снова возвращается.Итак, вот мой код:
- (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];
}
....
, когда мое представление вернулось, старые значения все еще отображаются, и ничего не изменилось.Какой метод я должен использовать?Я уже пробовал reloadInputViews, но он не работал, другие известные мне методы (reloadData) работают только для TableView ...