Ich habe eine Anwendung, die auf einem UINavigationController ausgeführt wird. Jetzt möchte ich ein UIToolbar-Element am unteren Rand jedes Bildschirms hinzufügen. Die Symbolleiste unten sollte für den ViewController, der gerade angezeigt wird, angepasst werden können. Meine erste Idee war, einfach die Symbolleiste in die navigationController-Ansicht einzufügen und sie zu markieren. In der viewController dachte ich, dass ich dann in der Lage sein würde, das UIToolbar-Element abzurufen. Ich habe den folgenden Code:UIToolbar auf jeder Seite von UINavigationController
In meinem AppDelegate:
// Get instance of Toolbar (navController is an instance of UINavigationController and TOOLBAR_TAG a constant)
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 440, 320, 40)];
toolbar.tag = TOOLBAR_TAG;
[navController.view addSubview:toolbar];
In meinem Viewcontroller ich das versucht:
UIToolbar *toolbar = [self.navigationController.view viewWithTag:TOOLBAR_TAG];
toolbar.barStyle = UIBarStyleBlack;
Doch das gibt mir eine Fehlermeldung, dass Toolbar in meinem Fall ist ein " UILayoutContainerView "Objekt, kein UIToolbar-Objekt. Daher scheint diese Idee eine Sackgasse zu sein.
Wie haben andere dieses Problem gelöst?
Wow, das ist ein Service, den ich nicht erwartet habe, ich habe sogar die Dokumentation gesucht, aber nicht gefunden. Sehr cool, danke! – Robin
Gern geschehen. =) es ist in der UINavigationController Dokumentation, BTW: http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UINavigationController_Class/Reference/Reference.html#//apple_ref/occ/instp/UINavigationController/toolbar –
Sie können Ihre UINavigationController pushController-Methode überschreiben, um Kopieren/Einfügen zu vermeiden und die Symbolleistenelemente hier festzulegen. –