【发布时间】:2016-10-28 04:41:13
【问题描述】:
【问题讨论】:
-
你能做你想做的事吗? @山姆
标签: swift uitabbarcontroller swrevealviewcontroller
【问题讨论】:
标签: swift uitabbarcontroller swrevealviewcontroller
您可以使用标签栏委托:
extension ViewController: UITabBarDelegate {
func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem) {
// Present hamburger menu
}
}
【讨论】:
如果你想实现类似于你的屏幕截图,那么你使用了错误的库,因为当你显示你的右边 viewController 前面 viewController 时,你的右边 viewController 的宽度向左移动,但无论如何这是您需要做的代码
首先你需要把你的viewController作为你的TabBarViewController的代表,在func tabBarController(tabBarController: UITabBarController, shouldSelectViewController viewController: UIViewController) -> Bool你需要返回false并调用SWRevealViewController的方法来显示正确的viewControllerrightRevealToggleAnimated(true)
class FirstViewController: UIViewController,SWRevealViewControllerDelegate,UITabBarControllerDelegate {
@IBOutlet weak var sliderControl: UISlider!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.revealViewController().delegate = self
self.tabBarController?.delegate = self
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
//self.view.removeGestureRecognizer(self.revealViewController().panGestureRecognizer())
//self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func tabBarController(tabBarController: UITabBarController, shouldSelectViewController viewController: UIViewController) -> Bool {
//checking for specific viewController
if(viewController is DesiredViewControllerClass) {
self.revealViewController().rightRevealToggleAnimated(true)
}
return false
}
}
希望对你有帮助,问候
【讨论】:
func tabBarController(tabBarController: UITabBarController, shouldSelectViewController viewController: UIViewController) -> Bool,这将保留在 currentViewController 中并显示正确的菜单,问候。希望对你有帮助