2016-07-28 7 views
0

その時点で任意のViewController(例:HomeVC)からSWRevealViewContrtoller(サイドメニュー)を開くと、背景のViewController(HomeVC)がぼやけているか、どのようにViewControllerからSWRevealViewControllerを開くと、背景のViewControllerがぼやけているのですか?

+0

[ぼかしオーバーレイビューの作成]の可能な複製(http://stackoverflow.com/questions/17041669/creating-a-blurring-overlay-view) –

+0

HomeVCに、ぼかしオーバーレイを追加するメソッドを作成します。サイドメニューバーボタンがクリックされ、それがそこにあるかどうかをチェックして、viewWillAppearで削除します。 –

+0

ありがとう..オーバレイビューを作成する必要はありません。そのfrontviewcontroller alphaを設定してください。 – lakshminarayana

答えて

1

ありがとうございます。私は解決策を得ました。

ホームビューコントローラでは、これらの変更を行います。

-(void)initialSetup 
{ 
    self.revealViewController.delegate = self; 
} 
- (void)revealController:(SWRevealViewController *)revealController didMoveToPosition:(FrontViewPosition)position 
{ 
    if (position == FrontViewPositionRight) 
    { 
     revealController.frontViewController.view.alpha = 0.5; 
    } 
    else 
    { 
     revealController.frontViewController.view.alpha = 1; 
    } 
} 
+0

これは、誰かがフロントビューコントローラを再びクリックしたときにのみ機能し、誰かがフロントVCからナビゲートすると動作しません。 – Munib

0

これはそれを行うには良い方法で、この方法は、メニューをタップすると、別のセグエに行くとき正面はまだ更新されていることを確認します。

あなたのMenuVC(背後にあり、サイドメニューとして機能するテーブルビューコントローラ)にあります。以下を追加してください。

override func viewWillAppear(_ animated: Bool) { 

    self.revealViewController().frontViewController.view.alpha = 0.5 
} 

override func viewWillDisappear(_ animated: Bool) { 

    self.revealViewController().frontViewController.view.alpha = 1 
} 

これは非常に基本的な実装ですが、これで、あなたがうまくいけば(また、それを暗くするなど多くのことを行う。しかし、それはすべてのエッジケースの世話をするので、私は、この方法がベストであることが判明することができます: D)。

関連する問題