2016-07-28 8 views
0

Wenn ich SWRevealViewContrtoller (Side Menu) von einem beliebigen ViewController (ex: HomeVC) zu diesem Zeitpunkt zu öffnen, sollte der Hintergrund ViewController (HomeVC) Unschärfe oder dunkler werden.How to make Hintergrund ViewControllers sollte verwischen, wenn SWRevealViewController von einem ViewController geöffnet

+0

Mögliche Duplikate von [Erstellen einer verschwommenen Überlagerungsansicht] (http://stackoverflow.com/questions/17041669/creating-a-blurring-overlay-view) –

+0

Erstellen Sie eine Methode in Ihrem HomeVC, die ein Unschärfe-Overlay hinzufügt, wenn Side Menu Bar Button ist angeklickt, dann überprüfen Sie, ob es da ist und entfernen Sie es in viewWillAppear –

+0

Vielen Dank .. Keine Notwendigkeit, Overlay-Ansicht zu erstellen. Stellen Sie das Frontviewcontroller alpha Dann funktioniert es gut. – lakshminarayana

Antwort

1

Danke Endlich habe ich die Lösung.

In Home-Ansicht-Controller diese Änderungen vornehmen.

-(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

Dies funktioniert nur, wenn jemand wieder auf den Front View Controller klickt, es funktioniert nicht, wenn jemand von der FrontVC weg navigiert. – Munib

0

Dies ist eine bessere Art und Weise, es zu tun, wird auf diese Weise stellen Sie sicher, dass, wenn Sie auf das Menü tippen und zum anderen gehen segue die Frontansicht noch aktualisiert werden.

In Ihrem MenuVC (die Tabelle View-Controller, die hinter und fungiert als ein Seitenmenü). Fügen Sie Folgendes hinzu. Diese

override func viewWillAppear(_ animated: Bool) { 

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

override func viewWillDisappear(_ animated: Bool) { 

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

ist eine sehr einfache Implementierung, aber mit diesem, man kann es auch verdunkeln, mehr Dinge usw. tun, aber ich fand diese Art und Weise das Beste zu sein, weil es sich um alle Grenzfälle nimmt (hoffentlich: D).