2016-11-14 3 views
6

Ich versuche, die Farbe der Navigationsleiste zu ändern, wenn Sie einen View-Controller auf dem Navigations-Stack mit barTintColor während navigationController (_: willShow: animiert :). HieriOS - Navigationsleiste Farbübergang beim Drücken Zurück Taste

ist der Code:

func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) { 
    if viewController is ViewerViewController { 
     navigationBar.barTintColor = UIColor(custom: .white) 
     navigationBar.tintColor = UIColor(custom: .black) 
    } else if viewController is FeedViewController { 
     navigationBar.barTintColor = UIColor(custom: .blue) 
     navigationBar.tintColor = UIColor(custom: .white) 
    } 
    } 

Alles funktioniert wunderbar, wenn ich die View-Controller drücken, und wenn ich die Swipe-Zurück-Geste verwenden (Farbübergang ist glatt in beiden Richtungen). Jedoch

, wenn ich die Zurück-Taste drücken, Farbe ändert sich nicht auf den ersten, ist das Navigations Übergang gemacht, und dann Farbe wird ohne Animation verändert.

Hat bereits jemand dieses Problem festgestellt/gelöst? Jeder Hinweis würde geschätzt werden.

+0

wenn Sie den Code schreiben, dann wird es einfach sein für uns, warum um zu bestimmen, ist es –

Antwort

0

hatte ich genau das gleiche Problem, so die „Zurück“ -Taste mit einem benutzerdefinierten linker Balken Knopf ersetzt, und rief:

navigationController?.popViewController(animated: true) 

edit:

die leftBarButton einstellte was den Verlust der Swipe-Geste, also brauchte ich eine andere Kerbe:

navigationItem.leftBarButtonItem = UIBarButtonItem(image: UIImage(named: "back"), style: .plain, target: self, action: #selector(pop)) 
navigationController?.interactivePopGestureRecognizer?.delegate = self 
+0

passieren Diese leider verliert die swipeToGoBack Geste der Navigation-Controller :( –

+0

@OliverAtkinson den Delegaten interactivePopGestureRecognizer Zugabe löst dieses Problem –

+0

Danke, und was bedeutet die Umsetzung aussehen wie für diese Delegierten Geste aussehen wie? –

Verwandte Themen