2013-08-06 13 views
6

eklerken geçersizdir SWRevealViewController sınıfını kullanacak bir uygulama üzerinde çalışıyorum. Uygulamanın şimdiye kadar, ben arka görüş denetleyicisi getirmek için sol çubuk düğme öğesine dokunmak mümkün, ama ben ön görünüm denetleyicisine bir jest tanıyıcı eklediğinizde, SWRevealViewController nil çalışır. Bunun neden böyle olduğu hakkında hiçbir fikrim yok.SWRevealViewController, jest tanıyıcı

//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:)]; 

cevap

1

Hikaye panosu mu kullanıyorsunuz?

Eğer öyleyse, prepareForSegue:'unuzda, aşağıdaki gibi, SWRevealViewControllerSegue sınıfından emin olduğunuzdan emin misiniz?

- (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]; 
     }; 
    } 
} 

Ben sadece proje için bu çözüldü ve ben geleneksel [segue destinationViewController] yöntemi kullanılarak zaman self.revealViewController nil oldu.

+0

Bir ipucu için teşekkürler! Benim durumumda yanlış ekrana geçiş olsa da, bu bir yan menü kırık yaptı. –