Wenn meine App geladen wird, möchte ich das Bild auf einer der Registerkarten basierend auf einer gespeicherten Einstellung des Benutzers beim letzten Start der App ändern. Ich bin in der Lage, das Bild zu ändern, wenn der Benutzer auf die Registerkarte klickt, die die ViewDidLoad-Methode des Viewcontrollers dieses Tabs ausführt. siehe unten:iPhone, UITabBarItem: Bild einer Tableiste beim Start der App dynamisch ändern
UITabBarItem *tabItem;
if (condition = YES) {
tabItem = [[UITabBarItem alloc] initWithTitle:@"Filter" image:[UIImage imageNamed:@"filter plus.png"] tag:self.view.tag];
}
else {
tabItem = [[UITabBarItem alloc] initWithTitle:@"Filter" image:[UIImage imageNamed:@"filter.png"] tag:self.view.tag];
}
self.navigationController.tabBarItem = tabItem;
[tabItem release];
[super viewDidLoad];
Aber ich habe es nicht gelungen, herauszufinden, wie man den Zugriff auf und ändern Sie die UITabBarItem dieser Registerkarte in der Stammansicht Steuerung der App, wenn es geladen wird. Siehe viewdidload-Methode des Root-View-Controllers unten.
Als dies nicht funktionierte habe ich mehrere andere Möglichkeiten versucht, um auf das uitabbaritem zugreifen und ändern, aber nichts hat funktioniert. Ich habe versucht, IBOutLets im Root-View-Controller zu UITabBarItem und UINavigationController zu erstellen.
// tb is an iboutlet to the UITabBarItem
self.tb = tabItem;
// nc is an iboutlet to the UINavigationController
self.nc.tabBarItem = tabItem;
vergeblich. Irgendeine Idee, wie man das macht?
Der Hauptvorteil ist, dass der Code leichter zu lesen ist. –