【问题标题】:SWRevealViewController and other view controllersSWRevealViewController 和其他视图控制器
【发布时间】:2016-03-31 16:27:00
【问题描述】:
在我的应用程序中,我使用SWRevealViewController 作为侧边菜单,并且设置正确。我的问题是,从一个有侧边菜单的视图控制器,我有一个转场去另一个不使用 SWRevealViewController 的视图控制器。然后返回到 SWRevealViewController。 (测验控制器)。由于某种原因,菜单按钮停止显示菜单。这是正在发生的事情:
(抱歉画质不好,用quicktime录制,然后在线转gif)。
这是我的故事板布局:
到测验控制器的 segue 是 push。
我怎样才能让按钮工作?
【问题讨论】:
标签:
ios
objective-c
xcode
sidebar
swrevealviewcontroller
【解决方案1】:
我不久前想出了答案。您所要做的就是为您的原始控制器创建一个展开转场。如果您不知道如何执行此操作,请继续。
我的控制器叫QuizViewController,你的可能不一样。
// In QuizViewController.m
...
- (void)unwindToQuiz:(UIStoryboardSegue *)segue
{
// Get data from sender by segue.sourceViewController
}
这个方法会在segue发生的时候被调用,这里的代码类似于prepareForSegue方法。
在控制器中,您从视图控制器中按右键单击拖动(控制单击)以退出并选择您的 -unwindToQuiz 方法。
现在从侧边栏中选择您的转场,然后为转场添加标识符。
**提示:如果您不想以编程方式启动 segue,请从 UI 元素(如 UIButton)拖动并退出。不需要标识符)。
要启动 segue,请执行 `[self performSegueWithIdentifier:@"yourIdentfier" sender:self];
你就完成了!它不适用于推送,因为 revealViewController 属性变为 nil