Программно запустить prepareForSegue

Я хочу запустить код в файле prepareForSegue. Проблема в том, что я меняю представления программно, поэтому функция prepareForSegue не запускается. Я также не знаю, как его запустить, потому что не могу дать ему идентификатор.

подготовка к переходу:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    NSLog(@"hi");
}

Код, который я пытался использовать для вызова функции вручную:

[self performSegueWithIdentifier:@"test" sender:self];

Код, который я использую для переключения между представлениями:

UIViewController *second = [self.storyboard instantiateViewControllerWithIdentifier:@"gameOverPage"];
[self presentViewController:second animated:YES completion:nil];

Я думаю, если бы я мог просто установить идентификатор для перехода, моя проблема была бы решена, но я не знаю, как это сделать.


person Andrew    schedule 24.08.2014    source источник


Ответы (2)


Если вы не используете Storyboard, вы не можете использовать методы, связанные с переходом. Вместо этого просто настройте свой контроллер, прежде чем представить его.

UIViewController *second = [self.storyboard instantiateViewControllerWithIdentifier:@"gameOverPage"];
// configure your controller
second.propertyA = value;
[self presentViewController:second animated:YES completion:nil];
person Yaman    schedule 24.08.2014

Вы можете установить идентификатор для перехода в раскадровке: просто нажмите на переход и выберите инспектор атрибутов (справа от Xcode), там вы найдете текстовое поле «Идентификатор». Далее вы можете поставить свое индивидуальное имя идентификатора.

person LukeSideWalker    schedule 24.08.2014