使用相同 SWRevealViewController 的不同 ViewController 上的侧边栏

Sidebars on different ViewControllers using same SWRevealViewController

我已经使用 SWRevealViewController 创建了边栏。在本文中,我将 HomeViewController 用作 front,将 SidebarViewController 用作 right。 我的 SidebarViewController 包含一个 UITableView(具有不同的主题名称)。我想打开一个新的 ViewControllerQuestionsViewController 选择任何主题。 现在我的问题是我想再次使用 SWRevealViewControllerQuestionViewController 中有一个侧边栏,但是在 SWRevealViewController 中,前面 segue 的标识符 sw_front 是一个常量字符串,所以我该如何更改它或者有任何其他方式在 QuestionViewController 中也有该侧边栏。

简而言之:我们可以使用SWRevelViewController

在不同的ViewControllers中有相同的侧边栏吗

只需使用 "reveal view controller set controller" segue

将 RevealViewController 连接到新的视图控制器

试试这个: 使用 HomeViewController 创建 NavigationViewController, 将 RevealViewController 连接到 NavigationController 为 "reveal view controller set controller", 将 HomeViewController 连接到 QuestionViewController 为 "show", 在导航栏左侧添加 "bar button item"(named:"OpenSideBar"), 在他们的 swift 文件中创建一个出口,然后添加到您的 viewDidLoad 中:

    OpenSideBar.target = self.revealViewController()
    OpenSideBar.action = Selector("revealToggle:")

**对我有用

我找到了解决方案,我们可以使用以下代码更改前后ViewControllers

UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
[self.revealViewController setRightViewController:[storyBoard instantiateViewControllerWithIdentifier:@"SideBarVC"]]; // To change rightViewController
[self.revealViewController setFrontViewController:[storyBoard instantiateViewControllerWithIdentifier:@"HomeVC"] animated:YES]; // To change frontViewController

为此我们必须使用 SWRevealViewControllerSeguePushController 作为 segue class 其他 FrontViewControllers

感谢大家的帮助。