簡體   English   中英

添加手勢識別器時,SWRevealViewController為零

[英]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_frontsw_rear用於segues。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM