2013-08-06 12 views
6

Pracuję nad aplikacją, która będzie korzystać z klasy SWRevealViewController. Aplikacja działa do tej pory, ponieważ jestem w stanie dotknąć elementu lewego przycisku paska, aby wydobyć kontroler widoku wstecznego, ale kiedy dodam program do rozpoznawania gestów w moim kontrolerze widoku z przodu, SWRevealViewController jest zerowy. Nie mam pojęcia, dlaczego tak jest, więc każda pomoc byłaby doceniona.Parametr SWRevealViewController jest zerowy podczas dodawania narzędzia do rozpoznawania gestów.

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

Odpowiedz

1

Czy używasz storyboardów?

Jeśli tak, w swoim prepareForSegue:, czy upewniasz się, że twoja klasa jest z klasy SWRevealViewControllerSegue, jak poniżej?

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

po prostu rozwiązać ten dla mojego projektu i self.revealViewController była zerowa, kiedy był przy użyciu tradycyjnych [Segue destinationViewController] metody.

+0

Dziękuję za podpowiedź! Chociaż w moim przypadku przejście na zły ekran spowodowało uszkodzenie menu bocznego. –

Powiązane problemy