Come posso accedere all'istanza _tabBar da UITabBarController
-
22-07-2019 - |
Domanda
Sto provando ad accedere all'istanza _tabBar da un UITabBarController. Sto cercando di nascondere la tabBar in determinate situazioni, per questo ho aggiunto un'estensione a UITabBarController, dove posso accedere all'istanza _tabBar e chiamare il messaggio setHidden. Funziona durante la compilazione per il simulatore, ma quando compilo per il dispositivo, viene visualizzato il seguente errore
" _OBJC_IVAR _ $ _ UITabBarController._tabBar " ;, referenziato da: _OBJC_IVAR _ $ _ UITabBarController._tabBar $ non_lazy_ptr in UITabBarController + TabBar.o
Cosa devo aggiungere ai flag del mio compilatore? e perché funziona durante la compilazione per il simulatore.
Grazie in anticipo.
Soluzione 2
È accessibile da iPhone OS 3.0
Altri suggerimenti
Secondo The Docs for UITabBarController:
Non dovresti mai tentare di manipolare l'oggetto UITabBar stesso archiviato questa proprietà. Se si tenta di fare quindi, la visualizzazione della barra delle schede genera un eccezione. Per configurare gli elementi per l'interfaccia della barra delle schede, dovresti assegnare invece una o più viste personalizzate controller per i viewController proprietà. La barra delle schede raccoglie il elementi della barra delle schede necessari dalla vista controller specificati.
La vista della barra delle schede fornita da questo la proprietà è solo per le situazioni in cui si desidera visualizzare un foglio di azione usando showFromTabBar: metodo di la classe UIActionSheet.
Se stai spingendo il tuo UITAbBarController su uno stack del controller di navigazione puoi impostare la proprietà hidesBottomBarWhenPushed su YES, e funzionerà.
Potrebbe esserci anche un'altra API nella superclasse di UITAbBarController che lo farà. In caso contrario, potresti attraversare la gerarchia della sottoview e nascondere quella necessaria.