swift 如何让 SWRevealViewController 成为另一个控制器的子控制器

How to make SWRevealViewController a child of another controller in swift

嗨,我有一个问题,我试图通过阅读文档来解决它,但我不能。

我希望选项卡栏控制器成为初始 VC 而不是 SWRevealViewController。

问题是应用内的滑出菜单不是第一个 vc。 那么问题是如何让 SWRC 在那里?

为什么不能将显示视图控制器移动到导航队列中的最后一个控制器,并将控制器与 "Item" 菜单一起用作 Sw_front?它应该有效。

作为替代方案,您可以从 Storyboard 中删除整个显示视图控制器,然后从导航队列中的第一个视图控制器手动创建它。然后推。

SWRevealViewController 有一个名为 initWithRearViewController:frontViewController 的方法,您可以使用 instantiateViewControllerWithIdentifier 从 Storyboard 获取 Sw_rear 和 Sw_front 视图控制器。

然后,当(手动)将项目菜单添加到导航栏时,您将 revealToggle: 分配为 action 并将您的 SWRevealViewController 实例分配为 target.

这种方法有一些变体,您可以将 SWRevealViewController 放在情节提要中的导航控制器之前,并将导航控制器指定为 Sw_front。然后你不需要手动实例化SWRevealViewController,而只需要"Item"菜单。

这里对于 removeGestureRecognizers 从导航队列中的中间视图控制器 viewWillAppear 上的显示视图控制器,然后在 panGestureRecognizertapGestureRecognizer 上添加回 tapGestureRecognizer 也很有用=19=] 与 "Item" 菜单的视图控制器。

更新

Here是在Swift中使用Tabbar的SWRevealViewController的示例工程。

我刚刚从 http://www.appcoda.com/sidebar-menu-swift/ 中获取示例项目并进行了一些调整。

我不喜欢将 SWRevealViewController 与 Storyboards 一起使用是因为每个要显示的新 ViewController 都有自己的导航控制器,但如果它适合您,您可以保留它。