2010-09-18 14 views
5

Ich habe eine Anwendung mit UITabBarController mit einer UINavigationController Unteransicht, die eine Tabellenansicht enthält. Ich möchte in der Lage sein, die UITabBarController mit einem UIToolbar für einen bestimmten View-Controller zu deaktivieren, wenn eine Zelle ausgewählt ist.Ersetzen UITabBar mit UIToolBar

Hier ist ein Beispiel aus einer anderen Anwendung, die die gleiche Art und Weise reagiert:

Initial view with UITabBarController and UINavigationController

Und wenn Sie eine Tabelle Ansicht Zelle auswählen:

Detailed view with UIToolbar

Die Detailansicht Controller (zweiter Bildschirm) muss das übergeordnete UITabBarController durch ein UIToolbar ersetzen. Weiß jemand wie ich das machen kann?

Antwort

5

Von UIToolBar on top of UITabBar?:

Sie können möglicherweise die Symbolleiste als ein Subview Ihrer Schlüsselfenster hinzuzufügen:

[[[UIApplication sharedApplication] keyWindow] addSubview:toolbarView] 
1

Obwohl @Hector Ramos Antwort ist richtig ein.

Aber daneben kann man das auch anders machen.

So stellen Sie das Objekt von der DelegateClass & Verwendung Datei dieses:

[DelegateClassObj.window addSubview:toolbar]; 
5

Warum nicht: detailController.hidesBottomBarWhenPushed = YES;

bevor sie an den navigationstack drängen? In der Ansicht Ihres DetailControllers kann die Symbolleiste über Code oder IB hinzugefügt werden.

+0

Dies ist bei weitem die beste Option. Obwohl die anderen Antworten funktionieren, erreicht diese das Beste. Das Problem mit den anderen Methoden ist, dass sie keine Rotation unterstützen. Wenn Sie die Autorotation unterstützen möchten, verwenden Sie einfach die Funktion "hidesBottomBarWhenPushed" in Ihrer Ansicht, bevor Sie sie auf den NavigationController-Stapel schieben. Dadurch kann Ihre neue Ansicht den gesamten Bildschirm einnehmen. – jschmidt