swift右侧的SWRevealViewController

Ili*_*uda 11 objective-c ios swrevealviewcontroller swift

我正在使用SWRevealViewController库在swift中制作一个滑出菜单,但我很难将这个菜单放在右侧.我在图书馆描述中看到了这条评论

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

但是我对目标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())

}
}
Run Code Online (Sandbox Code Playgroud)

并且从SWRevealViewController库调用revealViewController

Mic*_* K. 25

我按照这个解决方案,在前侧板视图的控制器中使用这个:

override func viewDidLoad() {
    super.viewDidLoad()

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

不要忘记首先在项目栏按钮上创建Outlet.在故事板中,将segue值设置为sw_right

Xcode 7 Beta 6截图

首先,这对我不起作用,但干净有帮助.

  • 那应该被标记为正确的答案! (2认同)

Mam*_*eeb 6

斯威夫特3

将此代码添加到yourViewController

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

在MainStoryBoard

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

  • 为我工作

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


rid*_*cuk 5

你能试试这段代码吗:

    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:")
Run Code Online (Sandbox Code Playgroud)