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

相關問題