moni_sind
moni_sind

Reputation: 605

How to close the SideBar menu manually when using SWRevealViewController ( ios)

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

Answers (6)

Ucdemir
Ucdemir

Reputation: 3098

Control it if it opened, if so close

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

Upvotes: 0

Sachin Daingade
Sachin Daingade

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

aqeel
aqeel

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

Alap Anerao
Alap Anerao

Reputation: 2143

If anyone is looking for a swift version, just use this single line:

self.revealViewController().revealToggleAnimated()

Upvotes: 11

Nupur Sharma
Nupur Sharma

Reputation: 1214

The correct answer is:

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

Upvotes: 16

moni_sind
moni_sind

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

Related Questions