Ich habe eine UITabBarControllerDelegate
-Methode, die den Titel von UITabBarItem
bestimmt und etwas entsprechend tut. Dies funktioniert gut für Artikel in meinem UITabBar
, aber wenn ich auf die Schaltfläche Mehr klicke, ist der Rest meiner UITabBarItems
in einem UITableView
. Wie kann ich den Titel im Abschnitt "Mehr" ermitteln?
Immer wenn Sie einen View-Controller in Ihrem UITabBarController auswählen, wird die von Ihnen erwähnte Methode aufgerufen, und am wichtigsten ist der aktuell angezeigte View-Controller wird Ihnen als Parameter übergeben ; Sie können dann den folgenden Code verwenden, um die Klasse und den Titel des Controllers zu finden, einschließlich des Controllers "more":
%Vor%In einem kurzen Test, einfach durch Hinzufügen einiger Controller in Xcode, erhalten Sie Folgendes in der Konsole:
%Vor%Wenn Sie auf der anderen Seite einen Controller innerhalb der Liste "more" auswählen, werden Sie in Ihrer UITabBarControllerDelegate-Methode nicht benachrichtigt (seltsam, IMHO). Um Benachrichtigungen zu erhalten, wenn Sie Controller in dieser Liste auswählen, können Sie Folgendes tun:
%Vor%Ihre Klasse sollte natürlich auch das UINavigationControllerDelegate-Protokoll implementieren.
Dies ist das Ergebnis eines Beispiellaufs, der den obigen Code verwendet und einige Male in der UITabBar und der "more" -Liste tappt:
%Vor%Hoffe, das hilft!
Tags und Links objective-c iphone xcode cocoa-touch uitabbarcontroller