Ich bin neugierig, wenn es eine legitime API, mit denen die Ansicht-Controller zu erhalten, die Kinder von einem sind UIMoreListController
? (Der UIMoreListController ist das Kind am oberen Ende des UIMoreNavigationController-Ansichtsstapels. Der UIMoreNavigationController ist das Objekt, auf das die moreNavigationController
Eigenschaft einer UITabBarController
.)
Mit anderen Worten, wenn ich einen UITabBarController habe und ihm ein Array von sechs Viewcontrollern zuordne, sieht die Viewhierarchie wie folgt aus (es ist eigentlich eine Hierarchie von Views, nicht von Viewcontrollern, aber die Verwendung dieser Bezeichner macht mehr Sinn):
+ UITabBarController <-- has five tabs
|--- view controller <-- these are my own view controllers
|--- view controller
|--- view controller
|--- view controller
|--+ UIMoreNavigationController <-- root view controller of fifth tab
|--+ UIMoreListController <-- table-based view shown on fifth tab
|--- view controller <-- these are my own view controllers
|--- view controller
Eine Möglichkeit, dies zu tun, besteht darin, einfach die View-Controller aus dem UITabBarController's viewControllers
Eigenschaft, prüft, ob es mehr als 5 gibt, und gibt alle View-Controller von Index 5 bis N - 1
wenn es mehr als 5 gibt. (Wenn es weniger als 5 gibt, dann sind keine Viewcontroller Kinder des UIMoreNavigationController).
Ich möchte jedoch die Hardcodierung von Annahmen über die Anzahl von Viewcontrollern vermeiden, die ein UITabBarController anzeigen wird, bevor er die verbleibenden Controller in der moreNavigationController
. Apple könnte diese Zahl in Zukunft ändern. Aber ich kann weder bei UITabBarController noch bei UINavigationController eine API finden, mit der ich auf diese Kinder zugreifen kann, und UIMoreNavigationController ist keine öffentliche Klasse, so dass ich mich nicht auf die Methoden dieser Klasse verlassen kann.