2013-08-06 15 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:,你是否確定你的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]; 
     }; 
    } 
} 

我只是解決了這個爲我的項目和self.revealViewController是零我用的是傳統的[SEGUE destinationViewController]方法時。

+0

謝謝你的提示!雖然在我的情況下,這是過渡到錯誤的屏幕,這使得側面菜單被打破。 –