self.revealViewController变为nil并且SWRevealViewController菜单在从某个VC

时间:2015-06-20 07:06:46

标签: ios objective-c cocoa

我使用SWRevelViewController框架并在编码时遇到了这个问题。基本上这里是我的VC及其类的列表: http://mnch.in/ubyB/3g4uqSwl(我的故事板图片)

问题是当用户登录UIVC_2时,它会使用标记为蓝色的segue返回SWRevelVC。但是,当viewDidLoad中的UITableVC方法被调用时

SWRevealViewController *revealViewController = self.revealViewController;
NSLog(@"%@", [revealViewController description]);
if (revealViewController) {
    NSLog(@"hey");
    [self.sidebarButton setTarget: self.revealViewController];
    [self.sidebarButton setAction: @selector( revealToggle: )];
    [self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
}

self.revealViewController变为nil,因此侧边栏停止工作,因为它永远不会进入if语句并设置侧边栏按钮的目标。

但是,如果我首先登录用户,然后关闭应用,然后再次构建并运行该应用,则UITableVC会直接显示UIVC_1UIVC_2赢得' t弹出),并且在其viewDidLoad方法中,self.revealViewController不是零,因此在这种情况下边栏工作。

任何人都可以解释为什么会发生这种情况,我应该如何解决这个问题,以便当我从UIVC_2进入SWRevealVC时,self.revealViewController不会成为nil?我已经考虑了很长时间了,但仍然没有得到它。非常感谢!

修改 这是一个类似的问题,也没有回答: Swift SWRevealViewController Menu not showing after segue back to certain page。 我的情况表明即使你一直回到SWRevealViewController,self.revealViewController仍未初始化

1 个答案:

答案 0 :(得分:0)

实际上没关系我是愚蠢的,这实际上有效,我犯的错误是我将segue从UIVC_2更改为SWRevelVC,但我一直在测试使用另一个VC(让他们称之为UIVC_3)和UIVC_3' s segue还没有链接到SWRevealVC,而是导航控制器......