Do you use storyboards?
If so, in your prepareForSegue: are you sure your segue has the SWRevealViewControllerSegue class, as shown below?
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue isKindOfClass: [SWRevealViewControllerSegue class]]) { SWRevealViewControllerSegue* rvcs = (SWRevealViewControllerSegue*) segue; SWRevealViewController* rvc = self.revealViewController; rvcs.performBlock = ^(SWRevealViewControllerSegue* rvc_segue, UIViewController* svc, UIViewController* dvc) { UINavigationController* nc = [[UINavigationController alloc] initWithRootViewController:dvc]; [rvc setFrontViewController:nc animated:YES]; }; } }
I just solved it for my project, and self.revealViewController was null when I used the traditional [segue destinationViewController] method.
source share