0

在我的应用程序中,我使用SWRevealViewController来实现侧面菜单。在那里,出于某种原因,我必须在揭示视图控制器之前放置一个嵌入导航控制器的视图。SWRevealViewController panGesture问题 - IOS/Swift

这是我的故事板

enter image description here

一切正常,除了一两件事。当我从屏幕的左边缘向右侧(平移手势)拖动我的主视图时,而不是侧面菜单,它会将我导航到前一个视图(在此情况下为中间视图,其中包含中间的按钮) 。

这是它的外观拖动

enter image description here

我想避免这种情况,并得到侧面菜单拖动一样,当时等。有人可以帮助我做到这一点。任何帮助将不胜感激。

编辑:

这是front_view和rear_view

enter image description here

+0

你能告诉我故事板中的哪个场景是rear_view和front_view吗? –

+0

@nikdange_me其实他们不在图像中。等待我编辑我的问题 – GMHSJ

+0

兄弟,你需要接受答案一旦解决方案正常工作,否则人们会停止回答你的问题 –

回答

1

将ViewController.swift fil e用于具有按钮的初始ViewController。

class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Do any additional setup after loading the view. 
    } 

    override func viewDidAppear(_ animated: Bool) { 
     super.viewDidAppear(animated) 
     self.navigationController?.interactivePopGestureRecognizer?.isEnabled = false 

    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


    /* 
    // MARK: - Navigation 

    // In a storyboard-based application, you will often want to do a little preparation before navigation 
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
     // Get the new view controller using segue.destinationViewController. 
     // Pass the selected object to the new view controller. 
    } 
    */ 

} 

有一个在swrevealviewcontroller执行没有问题,但导航控制器的原始行为导致此问题。

+0

UINavigationControllerDelegate不是必需的。是吗? – GMHSJ

+0

不,不是必需的。请删除它 –

+0

无论如何,感谢您的帮助。这很简单,很有效。干杯 – GMHSJ

1

您需要从任何视图控制器导航控制器删除popGesture,你不希望能够使用滑动手势:

var gestureRecognizer: UIGestureRecognizer? { 
    guard let nc = navigationController else { return nil } 
    return nc.interactivePopGestureRecognizer 
    } 

    override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) 

    if let gr = gestureRecognizer { 
     gr.isEnabled = false 
    } 
    } 
+0

感谢您的帮助@DJSK。 – GMHSJ

相关问题