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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top