How do i set a modal segue (programmatically) to a push segue

14,211

Solution 1

Alternatively, I actually prefer to define a segue right in my storyboard, but rather than originating from the button, I have it originate from the view controller itself, e.g.:

create segue

Then, give that segue a "storyboard id", say "Details", and then you can invoke that segue programmatically via:

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

I like this because that way, the storyboard continues to visually represent the flow of the app (as opposed to possibly having scenes floating out there with no segues). And you can use the exact same construct for both push and modal segues (and the view controller that's presenting the next view controller doesn't care which one the storyboard uses).

Solution 2

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

Got it

Share:
14,211
lennartk
Author by

lennartk

Updated on June 05, 2022

Comments

  • lennartk
    lennartk almost 2 years

    i have an navigation controller in my storyboard, but for one reason i have to make one segue programmatically, but how do i make a push segue programmatically?

    this is my code so far:

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