Reputation: 109
I've a storyboard (xcode5) with an embedded navigation controller (the navigation controller points into my main view controller).
I've created a segue name to a new view controller which I want to open through my code.
[[self navigationController] performSegueWithIdentifier:@"segueTo" sender:self];
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NSLog(@"Segue");
}
The view controller do open up but the prepareForSegue will never run, why?
I've tried with
[self performSegueWithIdentifier:@"segueTo" sender:self];
but then I get an runtime error saying it can't find the segue name.
Upvotes: 1
Views: 280
Reputation: 13546
Segue you are trying to perform must be linked from viewcontroller1
(embedded in navigation controller) to newviewcontroller
. In storyboard, make sure you have named connecting segue as "segueTo". Then in viewcontroller1
, call:
[self performSegueWithIdentifier:@"segueTo" sender:self];
instead of:
[[self navigationController] performSegueWithIdentifier:@"segueTo" sender:self];
This should solve your problem.
Upvotes: 1
Reputation: 25459
Replace this line:
[[self navigationController] performSegueWithIdentifier:@"segueTo" sender:self];
with
[self performSegueWithIdentifier:@"segueTo" sender:self];
It should help.
Upvotes: 0