提问者:小点点

swift上右侧的SWRevealViewController


我正在使用SWRevealViewController库在swift中制作一个滑出菜单,但我很难将这个菜单放在右侧。我在图书馆的描述上看到了这个注释

// Optional right view controller, can be nil if not used
@property (nonatomic) UIViewController *rightViewController;

但我对目标C不熟悉,我无法在SWIFT上做到这一点。这是我的默认(左)菜单代码的一部分:

class ViewController: UIViewController, AVAudioPlayerDelegate {

@IBOutlet weak var playlistOutlet: UIBarButtonItem!

override func viewDidLoad() {
    super.viewDidLoad()

    playlistOutlet.target = self.revealViewController()
    playlistOutlet.action = Selector("revealToggle:")

    self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())

}
}

并且从SWRevealViewController库调用revealViewController


共3个答案

匿名用户

我遵循了这个解决方案,在控制器的前侧边视图中使用了这个:

override func viewDidLoad() {
    super.viewDidLoad()

    if self.revealViewController() != nil {
        favoritesButton.target = self.revealViewController()
        favoritesButton.action = "rightRevealToggle:"
        self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
    }
}

别忘了先创建到项目栏按钮的出口。在情节提要中,将segue值设置为sw_right

一开始这对我不起作用,但一个清洁工帮了我的忙。

匿名用户

雨燕3

if revealViewController() != nil{
        sideMenuBtn.target = revealViewController()
        sideMenuBtn.action = #selector(SWRevealViewController.rightRevealToggle(_:))
        view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
    }

将segue标识符值设置为sw_right而不是sw_rear

  • 为我工作

更好的选择:https://github.com/jonkykong/sidemenu

匿名用户

您能试试这段代码吗:

    var storyboard = UIStoryboard(name: "Main", bundle: nil)
    var sidemenuViewController = storyboard.instantiateViewControllerWithIdentifier("sideMenu") as! SideMenuViewController
    sidemenuViewController.delegate = self
    revealViewController().rightViewController = sidemenuViewController
    revealViewController().delegate = self
    sideMenuItem.target = self.revealViewController()
    self.revealViewController().rightViewRevealWidth = self.view.frame.width * 0.8
    sideMenuItem.action = Selector("rightRevealToggle:")