3

У меня есть контроллер навигации в моей раскадровке, но по одной причине я должен сделать один segue программным путем, но как я могу сделать программный переход?Как установить modal segue (программно) на push segue

это мой код до сих пор:

- (IBAction)nextviewButton:(id)sender { 
    HolesViewController *Holes = [self.storyboard instantiateViewControllerWithIdentifier:@"HolesViewController"]; 
    Holes.nameString = self.NameField.text; 

    [self presentViewController:Holes animated:YES completion:nil]; 
} 

ответ

14

Кроме того, я предпочитаю, чтобы определить SEGUE прямо в моей раскадровке, но вместо того, происходящие от кнопки, я если он исходит от самого контроллера представления, например:

create segue

Затем дать, что непосредственно перейти в «раскадровки идентификатор», скажем, «Подробности», а затем вы можете ссылаться на эту SEGUE программно с помощью:

[self performSegueWithIdentifier:@"Details" sender: ...]; // you can specify either the button or `self` for the `sender 

Мне это нравится, потому что путь, раскадровка продолжает визуально представлять поток приложения (в отличие от возможного наличия сцен, плавающих там без сеге). И вы можете использовать ту же конструкцию как для push, так и для модальных сегментов (и контроллер вида, представляющий следующий контроллер представлений, не заботится о том, какой из них использует раскадровка).

4
[self.navigationController pushViewController:Holes animated:YES]; 

Понял

+3

Нет, это не MODAL segue ... –

Смежные вопросы