Frage

Ich füge einem tabbarController einen ViewController hinzu. Wenn ich einen ViewController aus der benutzerdefinierten Klasse und der NIB hinzufüge, wird das Symbol von 'IT nicht in der Taballeiste angezeigt.

Wenn ich so initialisiere, wird das Symbol nicht angezeigt.

viewController = [[FlashCardViewController alloc] initWithNibName:@"FlashCardViewController"  bundle:[NSBundle mainBundle]];

Das Erstellen eines generischen ViewController funktioniert jedoch.

viewController = [[UIViewController alloc] initWithNibName:nil  bundle:nil];

Hier fügen wir das Bild und den Titel hinzu.

viewController.title = @"Quiz";
viewController.tabBarItem.image = [UIImage imageNamed:@"magnifying-glass.png"];

Wie kann ich das Symbol anzeigen lassen, wenn sie von einer NIB geladen werden?

War es hilfreich?

Lösung

Sie können den Anruf zum Anruf hinzufügen tabBarItem.image Setzer im benutzerdefinierten Ansichtscontroller viewDidLoad Methode:

@implementation FlashCardViewController
//...
- (void)viewDidLoad {
    [super viewDidLoad];

    self.tabBarItem.image = [UIImage imageNamed:@"magnifying-glass.png"];
}
//...
@end

Bearbeiten: Ok, das hat nicht funktioniert. Versuchen:

- (void)viewDidLoad {
    [super viewDidLoad];

    UIImage *image = [UIImage imageNamed:@"magnifying-glass.png"];
    self.tabBarItem = [[[UITabBarItem alloc] initWithTitle:@"string"
                                                     image:image
                                                       tag:0] autorelease];
}

Andere Tipps

Warum übergeben Sie [NSBundle MainBundle] an den FlashCardViewController Init? Normalerweise geben Sie nur Null ein - wie in Ihrem Arbeitsbeispiel ...

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