Ich habe eine benutzerdefinierte UITabBar-Lösung für ein Projekt implementiert. Im Wesentlichen, wenn es mehr als 5 Elemente gibt, verwende ich eine scrollView, die es dem Benutzer ermöglicht, durch die zusätzlichen Registerkartenelemente zu blättern und die Schaltfläche "more" zu unterdrücken. Ein ähnliches Aussehen und Gefühl kann in der Weather Channel App gesehen werden.Unterdrücken Sie mehrNavigationController in benutzerdefinierten UITabBarController
Jedes Registerkartenelement entspricht einem UINavigationController, der den Stapel von Ansichten für jede Registerkarte verwaltet. Das Problem, das ich habe, ist, wenn ich mehr als 5 Tab-Elemente habe, ab Tab 5 nicht mehr korrekt den Navigations-Stack. Es scheint, dass der moreNavigationController den Navigationsstapel jedes Mal beendet, wenn Sie zu diesem Tab zurückkehren, und Sie werden wieder auf die Startseite gebracht.
ich die setSelectedViewController Methode überschrieben haben, wie folgt:
- (void) setSelectedViewController:(UIViewController *)selectedViewController {
[super setSelectedViewController:selectedViewController];
if ([self.moreNavigationController.viewControllers count] > 1) {
self.moreNavigationController.viewControllers = [[NSArray alloc] initWithObjects:self.moreNavigationController.visibleViewController, nil];
}
}
Dieser Code wird die mehr Funktionalität auf der linken Navigationstaste zu entfernen, aber es löst nicht das Problem des Navigationsstapels beibehalten wird. Alle anderen Registerkarten funktionieren einwandfrei. Ich kann mehrere Ansichten durchlaufen und der Stapel wird beibehalten, nachdem ich den Tab verlassen habe. Ich verstehe, dass dies ein kompliziertes Problem ist. Bitte lassen Sie mich wissen, wenn es Bereiche gibt, in denen ich Klarheit schaffen kann. Vielen Dank!
Ich habe dies ein bisschen anders, aber verwendet Ihr Konzept der nur den ersten ViewController und laden Sie alle anderen dynamisch. Schön gemacht! – Marquis103