【问题标题】:SWRevealViewController No StoryBoard and Toggle with UIButtonSWRevealViewController 没有 StoryBoard 和切换 UIButton
【发布时间】:2017-08-01 21:25:15
【问题描述】:

我正在尝试使用没有情节提要和 UIButton 的 SWRevealViewController。我的项目有两个带有笔尖的 UIViewController。主要的一个叫做 ViewController,另一个叫做 MenuViewController。

在我的 ViewController 我有以下代码:

- (void)viewDidLoad {
    [super viewDidLoad];

    MenuViewController *menuView;

    SWRevealViewController *revealViewController = [[SWRevealViewController alloc] initWithRearViewController:menuView frontViewController:self];

    if ( revealViewController )
    {
        [self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
    }
}

- (IBAction)toggleMenu:(id)sender {
    NSLog(@"Toggling menu");
    SWRevealViewController *revealController = self.revealViewController;
    [revealController rightRevealToggleAnimated:YES];
}

切换菜单按钮按预期打印“切换菜单”,但不显示菜单控制器。我知道这不是使用 SWRevealViewController 的传统方式,但有人知道如何让它工作吗?

【问题讨论】:

    标签: ios objective-c iphone swrevealviewcontroller


    【解决方案1】:

    在 viewDidLoad() 中添加以下行

    self.revealViewController.delegate = self;
    

    【讨论】:

    • 那行不通。我还添加了一些委托方法,它们也没有被调用。
    【解决方案2】:

    以下是我用来为 SWRevealViewController 设置两个(左和右)视图控制器的两种方法。只需给他们打电话viewDidLoad

    -(void) initSlideMenu
    {
        SWRevealViewController * menuViewController =  (SWRevealViewController *)self.revealViewController;
    
        if (menuViewController)
        {
            [_menuButton setTarget:self.revealViewController];
            [_menuButton setAction:@selector(revealToggle:)];
            [self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
        }
    }
    -(void) initRightMenu
    {
        SWRevealViewController * rightViewController = (SWRevealViewController *)self.revealViewController;
        if (rightViewController)
        {
            rightViewController.rightViewRevealOverdraw =0.0f;
            [_notificationButton setTarget:self.revealViewController];
            [_notificationButton setAction:@selector(rightRevealToggle:)];
            [self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
        }
    }
    

    【讨论】:

      【解决方案3】:

      您可以通过一些修改来尝试这个。这对我有帮助。

      - (IBAction)toggleMenu:(id)sender{
          [self.btn addTarget:self.revealViewController action:@selector(revealToggle:) forControlEvents:UIControlEventTouchUpInside];
      }
      

      【讨论】:

        猜你喜欢
        • 2015-01-23
        • 1970-01-01
        • 2017-05-05
        • 1970-01-01
        • 1970-01-01
        • 2020-10-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-15
        相关资源
        最近更新 更多