2017-07-05 4 views
0

Ich versuche zu erkennen, ob meine vorherige ViewController ist eine spezifische und wenn es ist, wenn ich zurückdrücken wird es die TabBar-Controller geladen. ich mit revealViewController View-Controller am Wechsel hier ist mein Code: hier ich die vorherigen View-Controller speichern:swift - wie kann ich überprüfen, ob ein bestimmter viewController der vorherige viewController ist

let newVC = 
self.storyboard?.instantiateViewController(withIdentifier: 
storyboardIdentifiers.newViewControllerID) as! newViewController   
newVC.previousVC = self 
self.revealViewController().setFront(newVC, animated: true) 

das ist mein Rücken Aktion, wo ich überprüfen müssen, wenn vorherige der erste Viewcontroller ist

func backAction() { 
let first = self.storyboard?.instantiateViewController(withIdentifier: storyboardIdentifiers.firstViewControllerID) as! firstViewController 
let second = self.storyboard?.instantiateViewController(withIdentifier: storyboardIdentifiers.secondViewControllerID) as! secondViewController 

if previousVC == first || previousVC == second { 
      previousVC = self.storyboard?.instantiateViewController(withIdentifier: storyboardIdentifiers.revealViewControllerID) as! SWRevealViewController 
self.revealViewController().setFront(previousVC, animated: true) 
} 
else { 
self.revealViewController().setFront(previousVC, animated: true) 
} 

aber wenn ich zurück drücke, erkennt es nicht, dass es von einem dieser View-Controller ist.

, wenn ich drucken „Selbst“ es gibt mir dieses Ergebnis

<MyPackege.firstViewController: 0x7f9e80f2b5a0> 

aber es wird nicht geladen, die TabBarController

+0

können Sie bitte erarbeiten? "Wenn mein vorheriger ViewController eine bestimmte ist", was willst du dann tun? Laden Sie den gleichen VC oder laden Sie einen anderen VC? –

+0

Ich möchte die vorherige laden, aber laden Sie sie mit dem TabBarController –

Antwort

1

Statt == Betreiber mit Versuchen Sie es mit isKind(of:) Methode, um die Art von Viewcontroller

überprüfen
func backAction() { 
let first = self.storyboard?.instantiateViewController(withIdentifier: storyboardIdentifiers.firstViewControllerID) as! firstViewController 
let second = self.storyboard?.instantiateViewController(withIdentifier: storyboardIdentifiers.secondViewControllerID) as! secondViewController 

if previousVC.isKind(of:firstViewController) || previousVC.isKind(of:secondViewController) { 
      previousVC = self.storyboard?.instantiateViewController(withIdentifier: storyboardIdentifiers.revealViewControllerID) as! SWRevealViewController 
self.revealViewController().setFront(previousVC, animated: true) 
} 
else { 
self.revealViewController().setFront(previousVC, animated: true) 
} 
+0

Danke! Es hat perfekt funktioniert! –

+0

Es wäre großartig, wenn Sie dies als Antwort akzeptieren könnten, damit es auch anderen hilft –

Verwandte Themen