UITabBarControllerから_tabBarインスタンスにアクセスする方法
-
22-07-2019 - |
質問
UITabBarControllerから_tabBarインスタンスにアクセスしようとしています。特定の状況でtabBarを非表示にしようとしています。このため、UITabBarControllerに拡張機能を追加し、_tabBarインスタンスにアクセスして、setHiddenメッセージを呼び出します。これはシミュレータ用にコンパイルするときに機能しますが、デバイス用にコンパイルすると次のエラーが表示されます
" _OBJC_IVAR _ $ _ UITabBarController._tabBar&quot ;、参照元: _OBJC_IVAR _ $ _ UITabBarController._tabBar $ non_lazy_ptr in UITabBarController + TabBar.o
コンパイラフラグに何を追加する必要がありますか?シミュレータ用にコンパイルするときに機能するのはなぜですか。
事前に感謝します。
解決 2
iPhone OS 3.0以降でアクセス可能
他のヒント
UITabBarControllerのドキュメントによると:
操作しようとしないでください UITabBarオブジェクト自体が格納されている このプロパティ。あなたがしようとする場合 そのため、タブバービューは 例外。アイテムを構成するには あなたのタブバーインターフェイス、あなたがする必要があります 代わりに1つ以上のカスタムビューを割り当てます viewControllersへのコントローラー プロパティ。タブバーは ビューから必要なタブバー項目 指定したコントローラ。
これにより提供されるタブバービュー プロパティは、 アクションシートを表示したい showFromTabBar:メソッドの使用 UIActionSheetクラス。
UITAbBarControllerをNavigation Controllerスタックにプッシュする場合、hidesBottomBarWhenPushedプロパティをYESに設定できます。これは機能します。
UITAbBarControllerのスーパークラスには、これを行う別のAPIもあります。そうでない場合は、サブビュー階層を調べて、必要な階層を非表示にすることができます。