2010-09-18 3 views
5

Ho un'applicazione con UITabBarController con una sottoview UINavigationController, che contiene una vista tabella. Voglio essere in grado di spegnere UITabBarController con un UIToolbar per un controller di visualizzazione specifico quando viene selezionata una cella.Sostituire UITabBar con UIToolBar

Ecco un esempio da qualche altra applicazione, che reagisce allo stesso modo:

Initial view with UITabBarController and UINavigationController

E quando si seleziona una cella di vista tabella:

Detailed view with UIToolbar

Il controller della vista dettagliata (secondo schermo) deve sostituire il genitore UITabBarController con un UIToolbar. Qualcuno sa come posso fare questo?

risposta

5

Da UIToolBar on top of UITabBar?:

Potreste essere in grado di aggiungere la toolbar come una visualizzazione secondaria della finestra chiave:

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

Anche se @Hector Ramos risposta è corretta.

Ma accanto a questo si può fare la stessa cosa anche in altro modo.

Basta rendere l'oggetto di file di DelegateClass & uso questo:

[DelegateClassObj.window addSubview:toolbar]; 
5

Perché non: detailController.hidesBottomBarWhenPushed = YES;

prima di spingere al navigationstack? La vista di DetailController può avere la barra degli strumenti aggiunta tramite codice o IB.

+0

Questa è di gran lunga l'opzione migliore. Sebbene le altre risposte funzionino, questa è la migliore. Il problema con gli altri metodi è che non supportano la rotazione. Quindi, se vuoi supportare l'autorotazione, usa la hidesBottomBarWhenPushed sulla tua vista prima di spingerla sullo stack NavigationController. Permetterà quindi alla tua nuova vista di occupare l'intero schermo. – jschmidt