Я не уверен, что я делаю неправильно. У меня есть два режима - редактировать и добавлять. При нажатии кнопки добавления из VC1 происходит переход к VC2, и пользователь может заполнить данные и добавить запись в таблицу VC1. Это работает. Однако у меня есть некоторая ProblamaticUILabel в VC2, которую я хочу отобразить «Режим добавления». Я пытаюсь установить его в segue, но это не работает.
Если затем пользователь коснется ячейки таблицы, которую он создал в VC1, я хочу, чтобы использовался тот же VC2, но я хочу изменить someProblamaticUILabel на «Режим редактирования». Это не работает.
Я подключил их с помощью раскадровки.
Ниже приведены некоторые варианты вывода
From Segue of VC1
segue.destinationViewController: AppVC2: <AppVC2: 0x146b5f40>
AppVC2.someProblamaticUILabel: (null)
AppVC2.someProblamaticUILabel.text: (null)
From viewDidLoad of VC2: <AppVC2: 0x146b5f40>
AppVC2 someFunctionalAttribute: edit
AppVC2 someProblamaticUILabel: <UILabel: 0x1454efc0; frame = (16 20; 151 54); text = 'Add/Edit'; clipsToBounds = YES; opaque = NO; autoresize = RM+BM; userInteractionEnabled = NO; layer = <_UILabelLayer: 0x1454ef50>>
AppVC2 someProblamaticUILabel.text: Add/Edit
Некоторый код
//VC1
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"AddHomePlayerSegue" ]){
AppVC2 * addHome = (AppVC2 *) segue.destinationViewController;
[addHome setDelegate:self];
addHome.teamType = HOME_TEAM;
addHome.mode = ADD_MODE;
addHome.someProblamaticUILabel.text = @"Add";
}else if([segue.identifier isEqualToString:@"EditVisitorPlayerSegue" ]){
AppVC2 * editVisitor = (AppVC2 *) segue.destinationViewController;
[editVisitor setDelegate:self];
editVisitor.mode = EDIT_MODE;
editVisitor.someProblamaticUILabel.text = @"Edit";
NSLog(@"\n From Segue of VC1");
NSLog(@"\n segue.destinationViewController: AppVC2: %@", editVisitor);
NSLog(@"\n AppVC2.someProblamaticUILabel: %@", editVisitor.someProblamaticUILabel);
NSLog(@"\n AppVC2.someProblamaticUILabel.text: %@", editVisitor.someProblamaticUILabel.text);
}
}
// VC2
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"\n From viewDidLoad of VC2: %@", self);
NSLog(@"\n AppVC2 someFunctionalAttribute: %@", self.mode);
NSLog(@"\n AppVC2 someProblamaticUILabel: %@", self.someProblamaticUILabel);
NSLog(@"\n AppVC2 someProblamaticUILabel.text: %@", self.someProblamaticUILabel.text);
}
Еще один вопрос. Как лучше всего сообщить VC2, что пользователь коснулся x строки с данными y, которые нужно заполнить из VC1 в VC2?