Ho finito per aggirare questo non utilizzando uno UITabBarController
, creando invece un CustomTabBarController che eredita da UIViewController
. Il controller personalizzato ha un UITabBar
in fondo la sua vista, e molteplici altri UIViewController
s incorporati in un contenitore Visualizzazioni. Il controller personalizzato imposta la proprietà isHidden
a true
per tutto il controllore vista incorporata tranne quello che corrisponde alla scheda selezionata.
Il seguente è un semplice esempio con due linguette, identificati dal loro tag:
class CustomTabBarController: UIViewController, UITabBarDelegate {
@IBOutlet weak var tab1View: UIView!
@IBOutlet weak var tab2View: UIView!
@IBOutlet weak var tabBar: UITabBar!
override func viewDidLoad() {
tabBar.delegate = self
}
func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
tab1View.isHidden = item.tag != 1
tab2View.isHidden = item.tag != 2
}
}
Questo controller personalizzata deve essere impostato alla radice di un UINavigationController
, che a sua volta deve essere impostato come master controller della Split View controller:
Questa configurazione funziona sia per iPad e iPhone:
Ci sono alcuni inconvenienti di questo metodo: regolatore scheda
L'usanza è meno facile da lavorare - l'aggiunta di un la nuova scheda richiede l'aggiunta di un'altra vista incorporata e la connessione a una presa nel controll ER.
Impostazione il titolo dell'articolo di navigazione e di sinistra e voci dei tasti a destra barra deve essere fatto all'interno del controller barra delle schede personalizzate, sulla selezione della scheda.
Questo metodo utilizza (penso) più memoria di un normale UITabBarController
, poiché tutti i controller di visualizzazione figlio vengono caricati non appena viene caricata l'app, piuttosto che quando vengono visualizzati per la prima volta.
Questa configurazione porterà alla barra delle schede viene nascosta quando dettaglio è illustrato nella (ritratto) modalità iPhone. Questo era quello che mi voluto, ed è il comportamento nella applicazione Facebook Messenger troppo, ma se si desidera che la barra delle schede per essere sempre visibili, questo metodo non lo farà.
fonte
2016-10-25 19:53:29
Si potrebbe trovare un po 'di informazioni su questo problema qui: –
Lasse1234
@Zeezer come ha fatto si finisce per risolvere questo? – SAHM
@SAHM Impossibile risolverlo, ridisegnare il mio flusso. Se trovi una soluzione che funziona sia per iPad che per iPhone, pubblicala e io la accetterò. Grazie – Zeezer