[英]SWRevealViewController is nil when adding gesture recognizer
我正在开发一个将使用SWRevealViewController类的应用程序。 该应用程序到目前为止工作,我可以点击左栏按钮项目带出后视图控制器,但当我在前视图控制器中添加手势识别器时,SWRevealViewController是零。 我不知道为什么这样,所以任何帮助将不胜感激。
//not nil here.
SWRevealViewController *revealController = [self revealViewController];
//somehow it becomes nil on the very next line and from then on I can't hold the reference to it
[self.navigationController.navigationBar addGestureRecognizer:[revealController panGestureRecognizer]];
UIBarButtonItem *revealButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"reveal-icon.png"]
style:UIBarButtonItemStyleBordered target:revealController action:@selector(revealToggle:)];
你在使用故事板吗?
如果是这样,在prepareForSegue:
你确定你的segue属于SWRevealViewControllerSegue
类,如下所示吗?
- (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];
};
}
}
我刚刚为我的项目解决了这个问题,当我使用传统的[segue destinationViewController]方法时,self.revealViewController是nil。
检查标识符,你必须准确使用, sw_front
和sw_rear
用于segues。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.