2017-10-26 8 views
0

SWRevealライブラリを使用してサイドメニューを作成しています。ユーザーがメニューバーをクリックするとサイドメニューが開き、フロントビューが無効になり、フロントビューが表示されます不透明度のある黒色。revealViewControllerデリゲートが機能しません

私は

enter image description here

私のコード

import UIKit 

class ViewController: UIViewController, SWRevealViewControllerDelegate { 

@IBOutlet var menuBarBurger: UIBarButtonItem! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    revealViewController().delegate = self 
    setupSideMenu() 
} 

func setupSideMenu() { 
    if revealViewController() != nil { 
     menuBarBurger.target = self.revealViewController() 
     menuBarBurger.action = #selector(SWRevealViewController.revealToggle(_:)) 
     revealViewController().rearViewRevealWidth = 300 

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

// This is the part where the background will turn blur and so on. 
func revealController(revealController: SWRevealViewController!, willMoveToPosition position: FrontViewPosition) { 

    let tagId = 8009 
    if revealController.frontViewPosition == FrontViewPosition.right { 
     let lock = self.view.viewWithTag(tagId) 
     UIView.animate(withDuration: 0.25, animations: { 
      lock?.alpha = 0 
     }, completion: {(finished: Bool) in 
      lock?.removeFromSuperview() 
     }) 

     lock?.removeFromSuperview() 
    } else if revealController.frontViewPosition == FrontViewPosition.left { 
     let lock = UIView(frame: self.view.bounds) 
     lock.autoresizingMask = [.flexibleWidth, .flexibleHeight] 
     lock.tag = tagId 
     lock.alpha = 0 
     lock.backgroundColor = UIColor.black 
     lock.addGestureRecognizer(UITapGestureRecognizer(target: self.revealViewController(), action: #selector(SWRevealViewController.revealToggle(_:)))) 
     self.view.addSubview(lock) 

     UIView.animate(withDuration: 0.5, animations: { 
      lock.alpha = 0.333 
     }) 
    } 
} 
} 

エミュレートしようとしていることを背面正面に

例を行くためにメニューバーガーバーを押す必要があり

ストーリーボード

enter image description here

タグID(念のため、あなたが求めている場合)

enter image description here

私は、同じデザインを達成するために、何をすべきか?

答えて

1

あなたはrevealViewController()はタイプSWRevealViewControllerのものであり、表示したいのViewControllerであると仮定するとself

revealViewController().delegate = self 

にデリゲートを設定していません。

+0

私はすでにその行を追加しましたが、うまくいかないようですが、デリゲートはトリガーさえしません。 – sinusGob

+0

すでに質問が更新されました – sinusGob

+0

'revealViewController()'のコードを共有できますか? – NSAdi

関連する問題