当用户点击视图控制器时如何使 SWRevealViewController 菜单消失
How to make SWRevealViewController menu disappear when users tap on the view-controller
我有带有嵌入式 SWRevealViewController 的视图控制器我在下面添加了代码以在使用菜单时禁用任何交互。
viewcontroller嵌入了tableview。
当用户点击视图控制器作为 slack 应用程序时,如何使菜单消失 "When the menu is on use and you tap on the chat the menu disappears"
class Feed: UIViewController,SWRevealViewControllerDelegate {
@IBOutlet weak var menuButton:UIBarButtonItem!
@IBOutlet weak var menuButton:UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
if self.revealViewController() != nil {
menuButton.target = self.revealViewController()
menuButton.action = "revealToggle:"
self.revealViewController().delegate = self
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
fetchMessages()
}
func revealController(revealController: SWRevealViewController!, willMoveToPosition position: FrontViewPosition)
{
if position == FrontViewPosition.Left // if it not statisfy try this --> if revealController.frontViewPosition == FrontViewPosition.Left
{
self.view.userInteractionEnabled = true
}
else
{
self.view.userInteractionEnabled = false
}
func revealController(revealController: SWRevealViewController!, didMoveToPosition position: FrontViewPosition)
{
if position == FrontViewPosition.Left // if it not statisfy try this --> if revealController.frontViewPosition == FrontViewPosition.Left
{
self.view.userInteractionEnabled = true
}
else
{
self.view.userInteractionEnabled = false
}
}
}
//在你的视图控制器中设置代理 class
class FeedVC: UIViewController,SWRevealViewControllerDelegate,UIGestureRecognizerDelegate
override func viewDidLoad() {
super.viewDidLoad()
self.revealViewController().delegate = self
var swl=self.revealViewController()
if swl != nil
{
swl.panGestureRecognizer()
swl.tapGestureRecognizer()
}
}
// 创建左栏按钮动作
@IBAction func but_back(sender: AnyObject) {
self.navigationController?.interactivePopGestureRecognizer.delegate=self
self.navigationItem.leftBarButtonItem?.target=self.revealViewController()
self.navigationItem.leftBarButtonItem?.action=Selector("revealToggle:")
self.revealViewController().revealToggle(sender)
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
//设置SWLReval的委托方法
func revealController(revealController: SWRevealViewController!, willMoveToPosition position: FrontViewPosition)
{
if position == FrontViewPosition.Left // if it not statisfy try this --> if revealController.frontViewPosition == FrontViewPosition.Left
{
self.view.userInteractionEnabled = true
revealController.panGestureRecognizer().enabled=true
}
else
{
self.view.userInteractionEnabled = false
revealController.panGestureRecognizer().enabled=false
}
}
此 link 中提供了更新代码,请在 here
下载项目
我有带有嵌入式 SWRevealViewController 的视图控制器我在下面添加了代码以在使用菜单时禁用任何交互。
viewcontroller嵌入了tableview。
当用户点击视图控制器作为 slack 应用程序时,如何使菜单消失 "When the menu is on use and you tap on the chat the menu disappears"
class Feed: UIViewController,SWRevealViewControllerDelegate {
@IBOutlet weak var menuButton:UIBarButtonItem!
@IBOutlet weak var menuButton:UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
if self.revealViewController() != nil {
menuButton.target = self.revealViewController()
menuButton.action = "revealToggle:"
self.revealViewController().delegate = self
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
fetchMessages()
}
func revealController(revealController: SWRevealViewController!, willMoveToPosition position: FrontViewPosition)
{
if position == FrontViewPosition.Left // if it not statisfy try this --> if revealController.frontViewPosition == FrontViewPosition.Left
{
self.view.userInteractionEnabled = true
}
else
{
self.view.userInteractionEnabled = false
}
func revealController(revealController: SWRevealViewController!, didMoveToPosition position: FrontViewPosition)
{
if position == FrontViewPosition.Left // if it not statisfy try this --> if revealController.frontViewPosition == FrontViewPosition.Left
{
self.view.userInteractionEnabled = true
}
else
{
self.view.userInteractionEnabled = false
}
}
}
//在你的视图控制器中设置代理 class
class FeedVC: UIViewController,SWRevealViewControllerDelegate,UIGestureRecognizerDelegate
override func viewDidLoad() {
super.viewDidLoad()
self.revealViewController().delegate = self
var swl=self.revealViewController()
if swl != nil
{
swl.panGestureRecognizer()
swl.tapGestureRecognizer()
}
}
// 创建左栏按钮动作
@IBAction func but_back(sender: AnyObject) {
self.navigationController?.interactivePopGestureRecognizer.delegate=self
self.navigationItem.leftBarButtonItem?.target=self.revealViewController()
self.navigationItem.leftBarButtonItem?.action=Selector("revealToggle:")
self.revealViewController().revealToggle(sender)
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
//设置SWLReval的委托方法
func revealController(revealController: SWRevealViewController!, willMoveToPosition position: FrontViewPosition)
{
if position == FrontViewPosition.Left // if it not statisfy try this --> if revealController.frontViewPosition == FrontViewPosition.Left
{
self.view.userInteractionEnabled = true
revealController.panGestureRecognizer().enabled=true
}
else
{
self.view.userInteractionEnabled = false
revealController.panGestureRecognizer().enabled=false
}
}
此 link 中提供了更新代码,请在 here
下载项目