Closed shashi-kiwi closed 4 years ago
Yes and what is the problem?
In your main view controllers:
import UIKit
import PBRevealViewController
class MainViewController: UIViewController {
@IBOutlet weak var leftButton: UIBarButtonItem!
@IBOutlet weak var rightButton: UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
leftButton.target = self.revealViewController()
leftButton.action = #selector(RevealViewController.revealButtonTouchUpInside(_:))
rightButton.target = self.revealViewController()
rightButton.action = #selector(PBRevealViewController.revealRightView)
}
In a subclass of PBRevealViewController:
import UIKit
import PBRevealViewController
class RevealViewController: PBRevealViewController, PBRevealViewControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
self.delegate = self
// ...
}
// MARK: - PBRevealViewControllerDelegate
@objc func revealButtonTouchUpInside(_ button: UIBarButtonItem) {
self.presentAlert()
}
func revealControllerPanGestureShouldBegin(_ revealController: PBRevealViewController, direction: PBRevealControllerPanDirection) -> Bool
{
if direction == .right {
self.presentAlert()
return false
}
return true
}
func presentAlert() {
let alertController = UIAlertController(title: "Warning!", message: "Discard changes?", preferredStyle: .alert)
let yesAction = UIAlertAction(title: "Yes", style: .destructive) { (action) in
self.revealLeftView()
}
let noAction = UIAlertAction(title: "No", style: .default) { (action) in
// Do something
}
alertController.addAction(yesAction)
alertController.addAction(noAction)
DispatchQueue.main.async {
self.mainViewController?.present(alertController, animated: true, completion: nil)
}
}
}
Hi @iDevelopper I have to show a alertview showing message " Discard changes" with 2 options i.e Yes or no on each view controller throught the app on Tapping menu button or pan gesture for opening Left menu. If user choses yes then left menu will be shown else not.
How can i do this ? Any help would be helpful. Thanks in advance.