【发布时间】:2016-05-03 12:21:57
【问题描述】:
我有一系列视图,它们在导航控制器上相互叠加。我想对这些视图做两件事:
- 从所有这些中打开后菜单视图;
- 能够导航 使用 Unwind segues 返回堆栈。
我发现如果我使用常规推送 segues 将视图控制器推到彼此之上,则展开 segue 会按预期工作,但是每个视图控制器上的 self.revealViewController 未设置并且无法调用菜单使用revealToggle: 选择器。
如果我将 push segues 更改为 SWRevealViewControllerSeguePushController 的子类,则视图会被推送到彼此之上,并且可以使用 RevealToggle 从其中的任何一个中调用菜单。不幸的是,unwind segues 停止工作(我认为这可能是因为视图控制器是使用 addChild 而不是 SWRevealViewController 类上的 pushViewController 堆叠的)。
有没有办法与 SWRevealViewController 和 Unwind Segues 一起工作?
下面是一个示例故事板:
第一个视图控制器是导航控制器;第二个是 SWRevealViewController;下面的三个视图控制器相互导航,第三个视图控制器与第一个视图控制器有一个展开segue。第一个和第三个控制器都有打开菜单的按钮。
正如我之前所说,如果底部视图控制器之间的 segues 是常规的 push segues,那么 unwind segue 会按预期工作;第一个视图控制器的菜单按钮有效(因为它直接连接到 SWRevealViewController),但第三个视图控制器的菜单按钮无效。
将 segue 类型切换为 SWRevealViewControllerSeguePushController 会使第一个和第三个视图控制器的菜单按钮正常工作,但 unwind segue 停止工作。
哦,我使用“popToRootViewControllerAnimated:”进行了测试,如果将 segues 设置为 SWRevealViewControllerSeguePushController,它也不起作用。
【问题讨论】:
-
不确定您的具体问题,但此链接帮助我使用 SWRevealVC youtube.com/watch?v=EWDNScxZ0YU
-
嗨 MikeG!感谢您的答复。不幸的是,视频并没有准确显示我需要的内容,这是一个视图控制器在被 SWRevealViewController 推送时执行 segues。然而,SWRevealViewController git 项目的 Patrick Bodet 帮助了我,接下来我会发布他给我的答案。
标签: objective-c xcode swift swrevealviewcontroller unwind-segue