Reputation: 605
I am trying to implement a SideBar
/ slide out menu using the SWRevealViewController
. I have a bunch of menus. One of the menu is to get app version info. So When I click on the cell, An AlertView
displays the version number and on pressing the OK button I would like to close/hide the SideBar
menu and return to the pervious view(front controller). For example, if I am on log in controller and I press the settings button to reveal the side bar and I choose version menu from TableView
cells, a pop will open displaying version# and when I press Ok, the SideBar
should close and return to the login screen without me having to tap the settings button again or swiping to return. How can I return to the login screen when I press OK on the alert view.
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
// the user clicked OK
if (buttonIndex == 0) {
//close the side bar and return to front view controller
}
}
Upvotes: 19
Views: 19501
Reputation: 3098
Control it if it opened, if so close
if (self.revealViewController().frontViewPosition != FrontViewPosition.left) {
self.revealViewController?.revealToggle(animated: true)
}
Upvotes: 0
Reputation: 11
//View Did load add this // 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)
}
Upvotes: -1
Reputation: 153
if the sidebar on left using:
self.revealViewController().revealToggle(animated: true)
if was on the right using:
self.revealViewController().rightRevealToggle(animated: true)
Upvotes: 2
Reputation: 2143
If anyone is looking for a swift
version, just use this single line:
self.revealViewController().revealToggleAnimated()
Upvotes: 11
Reputation: 1214
The correct answer is:
self.revealViewController().revealToggle(animated: true)
Upvotes: 16
Reputation: 605
I just figured out the answer. I just use the following code to hide the side bar.
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
if (buttonIndex == 0) {
[self.revealViewController revealToggleAnimated:YES];
}
}
Upvotes: 35