Dies ist die aktuelle Situation:verderbte Navigationsleiste nach
UITabBarController
UINavigationController
UIPageViewController
Some UIViewControllers (the actual content)
So ist der UIPageViewController einige UIViewControllers enthält, die alle eine UITableView enthalten.
Wenn ich eine der Zeilen in der UITableView klicken Sie auf die UIViewController die didSelect Methode aufruft. Das Verfahren sieht wie folgt aus:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
tableView.deselectRowAtIndexPath(indexPath, animated: true)
let activity = self.activities[indexPath.row - 1]
self.delegate?.dayTableViewSelectedActivity(activity, sender: self)
}
Dann wird das UIPageViewController das Protokoll implementiert, so dass die delegierte Methode aufgerufen wird. Die Methode sieht so aus:
func dayTableViewSelectedActivity(activity: Activity, sender: DayTableViewController) {
self.performSegueWithIdentifier("openDetails", sender: activity)
}
Die App navigiert (schiebt) dann zu einem DetailViewController. Wenn ich zurückwische (Standardverhalten von iOS), wird der DetailViewController ohne die Animation sofort zum UIPageViewController angezeigt. Dann ist meine Navigationsleiste kaputt und enthält einen Zurück-Button, der dort nicht hingehört, weil ich nicht weiter zurück gehen kann.
Wenn ich eine Zelle klicken Sie erneut auf die Konsole gibt mir eine nested push animation can result in corrupted navigation bar
Nachricht. Jede Aktion, die ich von dort gibt mir mehr Konsole Fehler wie:
nested pop animation can result in corrupted navigation bar
Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.
Dieser Fehler mich jetzt stundenlang ist frustrierend, und ich kann nicht herausfinden, was ich falsch mache. Es gibt keine doppelten Übergänge. Ich habe es mehrmals überprüft. Ich hoffe, ihr könnt mir helfen.
Danke! Ich werde versuchen, wenn ich nach Hause komme. Ich werde Sie auf dem Laufenden halten. –
Leider hat es nicht funktioniert. In der Anleitung tun sie ein Programm programmgesteuert abwickeln, aber ich jus Ich möchte das Standardverhalten von iOS (wenn Sie in einem UINavigationController nach rechts wischen, gehen Sie zum vorherigen Ansichtscontroller). Wenn ich also in meinem DetailViewController nach rechts wische, möchte ich zurück zum UIPageViewController. –