2013-08-06 8 views
6

जोड़ रहा है मैं एक ऐप पर काम कर रहा हूं जो SWRevealViewController क्लास का उपयोग करेगा। ऐप अब तक काम करता है, जिसमें मैं पिछला दृश्य नियंत्रक लाने के लिए बाएं बार बटन आइटम को टैप करने में सक्षम हूं, लेकिन जब मैं अपने फ्रंट व्यू कंट्रोलर में एक इशारा पहचानकर्ता जोड़ता हूं, तो 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:)]; 

उत्तर

1

क्या आप स्टोरीबोर्ड का उपयोग कर रहे हैं?

यदि ऐसा है, तो अपने prepareForSegue: में, क्या आप सुनिश्चित कर रहे हैं कि आपका सेग्यू 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 नहीं के बराबर था।

+0

एक संकेत के लिए धन्यवाद! हालांकि मेरे मामले में यह गलत स्क्रीन में संक्रमण था, जिसने एक साइड मेनू टूटा। –

संबंधित मुद्दे