SWRevealViewController 切换不适用于自定义导航栏按钮
SWRevealViewController toggle not working with custom Navigation Bar Button
我正在使用 SWRevealViewController 在 Swift 2.0 中显示侧边菜单 我已经从 GitHub 下载了文件,创建了桥接头并正确连接了转场。我正在创建自定义按钮,但操作 "reveal toggle" 未触发。我哪里出错了?
super.viewDidLoad()
self.navigationController?.navigationBar.topItem?.title = "DASHBOARD"
self.navigationController!.navigationBar.tintColor = UIColor.whiteColor()
self.navigationController!.navigationBar.titleTextAttributes =
[NSForegroundColorAttributeName: UIColor.whiteColor()]
self.navigationController!.navigationBar.titleTextAttributes = [ NSFontAttributeName: UIFont(name: "Teko-Regular", size: 26)!]
self.navigationController?.navigationBar.barTintColor = UIColor.redColor()
let btnName = UIButton()
btnName.setImage(UIImage(named: "LeftNavItem"), forState: .Normal)
btnName.frame = CGRectMake(0, 0, 20, 20)
let leftBarButton = UIBarButtonItem()
leftBarButton.customView = btnName
self.navigationItem.leftBarButtonItem = leftBarButton
if self.revealViewController() != nil {
//print(self.revealViewController())
leftBarButton.target = self.revealViewController()
leftBarButton.action = Selector("revealToggle:")
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
手势识别器可以正常触发,但不能正常触发 "revealToggle:" 有什么错误吗?
class Name: SWRevealViewControllerDelegate
override func viewDidLoad() {
super.viewDidLoad()
self.revealViewController().delegate = self
}
我在使用 SWRevealViewController 时遇到了同样的问题。
解决方案:**登录后我之前调用仪表板屏幕但现在
我用下面的 SWrevealviewcontroller 替换了 code.that 现在工作正常
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController1 =
storyboard.instantiateViewController(withIdentifier: "SWRevealViewController") as! SWRevealViewController
self.present(viewController1, animated: true,completion: nil)
*在viewdidload()方法中添加以下代码
if revealViewController() != nil {
menuoutlet.target = self.revealViewController()
menuoutlet.action = #selector(SWRevealViewController.revealToggle(_:))
self.view.addGestureRecognizer(revealViewController().panGestureRecognizer())
self.revealViewController().rearViewRevealWidth = 240
}
菜单按钮操作代码
@IBAction func menu(_ sender: Any) {
let btntitle = (sender as AnyObject).currentTitle!
self.revealViewController().rearViewController.performSegue(withIdentifier: btntitle!, sender: self.revealViewController().rearViewController)
}
我正在使用 SWRevealViewController 在 Swift 2.0 中显示侧边菜单 我已经从 GitHub 下载了文件,创建了桥接头并正确连接了转场。我正在创建自定义按钮,但操作 "reveal toggle" 未触发。我哪里出错了?
super.viewDidLoad()
self.navigationController?.navigationBar.topItem?.title = "DASHBOARD"
self.navigationController!.navigationBar.tintColor = UIColor.whiteColor()
self.navigationController!.navigationBar.titleTextAttributes =
[NSForegroundColorAttributeName: UIColor.whiteColor()]
self.navigationController!.navigationBar.titleTextAttributes = [ NSFontAttributeName: UIFont(name: "Teko-Regular", size: 26)!]
self.navigationController?.navigationBar.barTintColor = UIColor.redColor()
let btnName = UIButton()
btnName.setImage(UIImage(named: "LeftNavItem"), forState: .Normal)
btnName.frame = CGRectMake(0, 0, 20, 20)
let leftBarButton = UIBarButtonItem()
leftBarButton.customView = btnName
self.navigationItem.leftBarButtonItem = leftBarButton
if self.revealViewController() != nil {
//print(self.revealViewController())
leftBarButton.target = self.revealViewController()
leftBarButton.action = Selector("revealToggle:")
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
手势识别器可以正常触发,但不能正常触发 "revealToggle:" 有什么错误吗?
class Name: SWRevealViewControllerDelegate
override func viewDidLoad() {
super.viewDidLoad()
self.revealViewController().delegate = self
}
我在使用 SWRevealViewController 时遇到了同样的问题。 解决方案:**登录后我之前调用仪表板屏幕但现在 我用下面的 SWrevealviewcontroller 替换了 code.that 现在工作正常
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController1 =
storyboard.instantiateViewController(withIdentifier: "SWRevealViewController") as! SWRevealViewController
self.present(viewController1, animated: true,completion: nil)
*在viewdidload()方法中添加以下代码
if revealViewController() != nil {
menuoutlet.target = self.revealViewController()
menuoutlet.action = #selector(SWRevealViewController.revealToggle(_:))
self.view.addGestureRecognizer(revealViewController().panGestureRecognizer())
self.revealViewController().rearViewRevealWidth = 240
}
菜单按钮操作代码
@IBAction func menu(_ sender: Any) {
let btntitle = (sender as AnyObject).currentTitle!
self.revealViewController().rearViewController.performSegue(withIdentifier: btntitle!, sender: self.revealViewController().rearViewController)
}