Frage

ich ändern Bilder meiner Tabbar versuchen in einem Viewcontroller, aber die neuen Bilder angezeigt werden, ich muß auf jedem Tab-Leiste Elemente klicken.

for (CustomTabBarItem *myItem in self.tabBarController.tabBar.items){
        myItem.enabled = YES; 

        myItem.badgeValue = @"1"; 

        UIImage *myImage =  [[UIImage alloc] initWithContentsOfFile:[[DesignManager sharedManager] getPathOfFile:@"test.png"]];

        *myItem.imageSelect= *myImage; // change images of each item. don't appear if I dont click on the item
}

Wer weiß, wie kann ich direkt diese Bilder angezeigt werden? Dank

War es hilfreich?

Lösung

Sie müssen die alte Tab-Leiste Element durch ein neues ersetzen. Sie können das Bild dynamisch aktualisieren sonst.

Der einfachste Weg, dies zu tun ist, um die tabBarItem Eigenschaft des View-Controller durch einen gegebenen Tab dargestellt einzustellen. Wenn Sie dies aus diesen View-Controller machen wollten, nur schreiben:

self.tabBarItem = [[UITabBarItem alloc] initWithTitle: @"title" image: myImage: tag: nil];

Oder Sie könnten dies tun, von irgendwo anders, sagen AppDelegate:

UIViewController* vc = [tabBarController.viewControllers objectAtIndex: 3];
vc.tabBarItem = [[UITabBarItem alloc] initWithTitle: @"title" image: myImage: tag: nil];

Andere Tipps

Ich weiß, das ist eine alte Frage. Ich lief in das gleiche Problem, wenn ich das Abzeichen Wert von einem anderen aktiven Tab aktualisieren müssen. ein anderen UITabBarItem Erstellen wird Ihr aktuelles Problem lösen, sondern verursacht potenziellen Speicherverlust, wenn dieser Code oft genannt wird. Plus, wenn andere Ansicht-Controller auf die Registerkarte zuzugreifen, sie haben keine Bezugnahme auf neu erstellte UITabBarItem. Mein Trick ist,

vc.tabBarItem = vc.tabBarItem; 

Es funktioniert für mich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top