self.revealViewController 变为 nil 并且 SWRevealViewController 菜单在从某个 VC 转回 SWRevelViewController 后不显示
Posted
技术标签:
【中文标题】self.revealViewController 变为 nil 并且 SWRevealViewController 菜单在从某个 VC 转回 SWRevelViewController 后不显示【英文标题】:self.revealViewController becomes nil and SWRevealViewController Menu not showing after segue back to SWRevelViewController from a certain VC 【发布时间】:2015-06-20 07:06:45 【问题描述】:我正在使用SWRevelViewController
框架并在编码时遇到了这个问题。基本上这是我的 VC 及其课程的列表:
http://mnch.in/ubyB/3g4uqSwl(我的故事板图片)
问题是当用户登录UIVC_2
时,它会使用蓝色标记的segue 回到SWRevelVC
。但是,当UITableVC
中的viewDidLoad
方法被调用时
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_1
、UIVC_2
不会弹出),并且在其viewDidLoad
方法,self.revealViewController
不为零,因此侧边栏在这种情况下有效。
谁能解释为什么会发生这种情况以及我应该如何解决它,以便当我从UIVC_2
转到SWRevealVC
时,self.revealViewController
不会是nil
?这个问题我想了很久,还是没明白。非常感谢!
编辑: 这是一个类似的问题,也没有回答: Swift SWRevealViewController Menu not showing after segue back to certain page。 我的案例表明,即使您一直回到 SWRevealViewController,self.revealViewController 仍然没有初始化
【问题讨论】:
【参考方案1】:其实没关系,我是愚蠢的,这确实有效,我犯的错误是我将 segue 从 UIVC_2 更改为 SWRevelVC,但我一直使用另一个 VC(我们称之为 UIVC_3)进行测试,并且 UIVC_3 的 segue 没有链接到SWRevealVC 而是导航控制器...
【讨论】:
以上是关于self.revealViewController 变为 nil 并且 SWRevealViewController 菜单在从某个 VC 转回 SWRevelViewController 后不显示的主要内容,如果未能解决你的问题,请参考以下文章