Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SWIFT中单击选项卡栏打开侧菜单_Swift_Uitabbarcontroller_Swrevealviewcontroller - Fatal编程技术网

在SWIFT中单击选项卡栏打开侧菜单

在SWIFT中单击选项卡栏打开侧菜单,swift,uitabbarcontroller,swrevealviewcontroller,Swift,Uitabbarcontroller,Swrevealviewcontroller,我想做一些像下面的快照 当我单击“纵断面”选项卡栏而不是打开新的视图控制器时,它会显示一个侧菜单。它是不是在点击tabbar时被处理的东西 您可以使用选项卡栏代理: extension ViewController: UITabBarDelegate { func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem) { // Present hamburger menu } } 如果您想实现屏幕

我想做一些像下面的快照

当我单击“纵断面”选项卡栏而不是打开新的视图控制器时,它会显示一个侧菜单。它是不是在点击tabbar时被处理的东西


您可以使用选项卡栏代理:

extension ViewController: UITabBarDelegate {
    func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem) {
        // Present hamburger menu
    }
}

如果您想实现屏幕截图这样的效果,那么您使用的库是错误的,因为当您显示右侧
viewController
时,前面的
viewController
会按右侧
viewController
的宽度向左移动,但无论如何,这里是您需要执行的代码

首先,您需要将viewController作为TabBarViewController的代理放置在func tabBarController中(tabBarController:UIAbbarController,应选择viewController viewController:UIViewController)->Bool您需要返回false并调用SWRevealViewController的方法来显示right viewController
rightRevealToggleAnimated(true)


我希望这对您有所帮助,谢谢您的回复,但请您详细说明一下。这个视图控制器类将是5视图控制器类?但是如何在tabbar中添加没有ViewController的按钮…感谢您的回复,但我想实现的是,当我单击“PROFILE”按钮时,而不是继续profileviewcontroller,它应该显示此菜单。这就像“配置文件”选项卡只是一个按钮,可以调出菜单,但第一个视图控制器上的焦点不会移动。我的答案是@Sam编辑的,您需要实现此方法
func tabBarController(tabBarController:UITabBarController,应该选择viewController viewController:UIViewController)->Bool
,这将保留在currentViewController中,并显示右菜单。我希望这对你有很大帮助!你太棒了:)谢谢,一切都很好,但是当我在这个调用self.revelviewcontroller().RightReveloggleAnimated中调用显示视图控制器时(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
}


}