Предположим, что я перехожу к контроллерам представлений с помощью segues. У меня есть textField на View Controller 1 и метка на втором контроллере представления. Когда я segueing на 2-й контроллер представления можно легко установить метку с помощью следующего кода:Когда подходящее время для использования представленногоViewController?
ViewController # 2
-(void) viewWillAppear: (BOOL) animated
{
self.labelVC2.text = ((VC1 *)self.presentingViewController).textFieldVC1.text;
}
Это имеет смысл. В этом случае используется свойство presentingViewController. При попытке выяснить, когда presentedViewController имущество будет использоваться, кажется логичным, что она будет использоваться с первого контроллера представления в методе prepareForSegue так:
ViewController # 1
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([[segue identifier] isEqualToString:@"SegueToNextVC"])
{
((VC2 *)self.presentedViewController).labelVC2.text = self.textFieldVC1.text;
}
}
Однако это не похоже, работают, и я предполагаю, что это связано с тем, что в prepareForSegue новый экземпляр моего второго контроллера представлений называется моментом до того, как произойдет segue, таким образом потеряв свойство, которое я только что установил. Если я прав в этом, когда будет подходящее время для использования свойства presentationViewController? Очевидно, я бы не использовал это свойство на моем втором контроллере представления, потому что я могу просто получить доступ к классу напрямую.