如何在使用SWRevealViewController(iOS)时手动关闭侧边栏菜单

19
我试图使用SWRevealViewController实现一个侧边栏/滑出菜单。我有一堆菜单,其中一个是获取应用程序版本信息的菜单。所以当我点击单元格时,会显示一个AlertView,显示版本号码,并按下OK按钮后,我想关闭/隐藏SideBar菜单并返回到之前的视图(前端控制器)。例如,如果我在登录控制器上,然后按设置按钮以显示侧边栏,并从TableView单元格中选择版本菜单,那么将打开一个弹出窗口显示版本号,当我按下“确定”时,SideBar应该关闭并返回到登录屏幕,而不需要再次点击设置按钮或滑动返回。如何在按下警报视图上的OK时返回到登录屏幕。
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
    // the user clicked OK
    if (buttonIndex == 0) {

      //close the side bar and return to front view controller
    }
}

我有同样的问题。我有一个带有警报YES / NO的菜单退出。当按下NO时,我需要返回到相同的菜单。我记得上次调用的segue(菜单),然后再次调用它。 - new2ios
6个回答

35

我刚刚找到了答案。我只使用了以下代码来隐藏侧边栏。

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
   if (buttonIndex == 0) {
    [self.revealViewController revealToggleAnimated:YES];

   }
}

16

正确答案是:

self.revealViewController().revealToggle(animated: true)

1
首先,您必须检查您的菜单是否已打开 -> 如果(revealViewController()。frontViewPosition == FrontViewPosition.right) - kike0kike

11

如果有人正在寻找 Swift 版本,请使用以下这行代码:

self.revealViewController().revealToggleAnimated()

2

如果侧边栏在左侧使用:

    self.revealViewController().revealToggle(animated: true)

如果在右边使用:
    self.revealViewController().rightRevealToggle(animated: true)

0

如果它已经打开,就控制它并关闭

if (self.revealViewController().frontViewPosition != FrontViewPosition.left) {
                    self.revealViewController?.revealToggle(animated: true)
                    
      }

-1

//在视图加载时添加此代码 // Swift 4.2

func viewDidLoad() {

super.viewDidLoad()
let leftMenuItem = UIBarButtonItem(image: UIImage(named: "menu"), style: .plain, target: revealViewController, action: #selector(SWRevealViewController.revealToggle(_:)))
navigationItem.setLeftBarButton(leftMenuItem, animated: true)

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接