Ich versuche zu verhindern, dass einige ViewControllers zurückgehen. Ich habe UINavigationController in Unterklassen unterteilt, um einige Benutzeroberflächenanpassungen vorzunehmen. Ich passe die UINavigationController-Unterklasse an das UINavigationBarDelegate-Protokoll an und versuche, die navigationBar: shallPop-Methode zu implementieren. Ich habe diesen Code:UINavigationBarDelegate solltePop Artikel seltsames Verhalten
func navigationBar(_ navigationBar: UINavigationBar, shouldPop item: UINavigationItem) -> Bool {
print("Popping: \(item.title)")
return true
}
Wenn ich die Swipe von links Art und Weise verwenden, um zurückgehen, wird die Methode aufgerufen und alles funktioniert. Wenn ich die Zurück-Taste drücke, wird die Methode immer noch aufgerufen, aber der ViewController springt nicht. Wenn der ViewController der zweite auf dem Stapel ist, verschwindet die Zurück-Schaltfläche wie in der Navigationsleiste, dass das Poppen stattgefunden hat. Kann mir jemand helfen, dieses Verhalten zu verstehen?