【问题标题】:Problems with implementing SWRevealViewController in Swift在 Swift 中实现 SWRevealViewController 的问题
【发布时间】:2016-04-15 10:52:13
【问题描述】:

您好,我是 iOS 新手,正在尝试实现 SWRevealViewController。我遵循了一些教程并在教程项目中成功实现了SWRevealViewController,但我正在努力在现有项目中实现幻灯片菜单。

所以我有一个故事板,其中首先有一个NavigationController,它是一个初始视图控制器,然后是登录、登录或注册屏幕。全部连接到导航控制器。登录后,我正在显示汉堡菜单显示的主屏幕。

通过查看教程,我尝试将 ViewController 拖到情节提要并添加一个类 SWRevealViewController。然后我拖动TableViewController 并用菜单项填充了一些行。接下来,我所做的是从 SWRevealViewController 控制拖动到表视图控制器并选择 reveal view controller set controller 并将其命名为 sw_rear

现在在sw_front 的教程中,他们已将SWRevealViewController 连接到直接连接到主屏幕的 NavigationViewController。但在我的项目中,它不是因为 NavigationController 直接连接到登录。我在这里尝试了两件事。首先,我通过 segue 从SWRevealViewController 连接到 NavigationViewController,但它不起作用,而且我尝试将另一个 NavigtionViewController 嵌入到主屏幕,但它仍然不起作用。我希望你能理解我的问题。

代码:

if revealViewController() != nil {
    print("check")
    menuButton.target = revealViewController()
    menuButton.action = "revealToggle:"
    view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}

教程链接http://www.appcoda.com/sidebar-menu-swift/

【问题讨论】:

  • 你收到这个错误了吗[UIStoryboardSegueTemplate segueWithDestinationViewController:]

标签: ios swrevealviewcontroller


【解决方案1】:

实际上 SWRevealViewController performSegueWithIdentifier 不起作用所以进入你的 SWRevealViewController 类并用这个替换一个方法

- (void)loadStoryboardControllers
{
    if ( self.storyboard && _rearViewController == nil )
    {
    //Try each segue separately so it doesn't break prematurely if either Rear or Right views are not used.
    @try
    {
        UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"yourMenuController storyboard Identifier"];
        SWRevealViewControllerSegueSetController *segue = [[SWRevealViewControllerSegueSetController alloc] initWithIdentifier:SWSegueRearIdentifier source:self destination:controller];
        [segue perform];
    }
    @catch(NSException *exception) {}

    @try
    {
        UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"your front viewcontroller storyboard Identifier"];
        SWRevealViewControllerSegueSetController *segue = [[SWRevealViewControllerSegueSetController alloc] initWithIdentifier:SWSegueFrontIdentifier source:self destination:controller];
        [segue perform];
    }
    @catch(NSException *exception) {}

    @try
    {
        [self performSegueWithIdentifier:SWSegueRightIdentifier sender:nil];
    }
    @catch(NSException *exception) {}
}

}

【讨论】:

    【解决方案2】:

    这是一个示例 SWRevealViewController 幻灯片菜单。

    BMSlideMenu

    【讨论】:

      猜你喜欢
      • 2014-09-02
      • 2017-07-11
      • 2019-01-09
      • 1970-01-01
      • 1970-01-01
      • 2017-05-20
      • 1970-01-01
      • 1970-01-01
      • 2020-02-10
      相关资源
      最近更新 更多