私はアプリケーションの下にビューを追加するライブラリを作成しています(ライブラリがアプリケーションに統合されている場合)。
ビューコントローラのビューのフレームパラメータを使用してビューのサイズを取得し、マイライブラリのビューフレームを計算して表示します。
問題は、ナビゲーションバーがある場合、私のビューは実際のビューの下にまだ表示されていることです。だから、現在のビューコントローラがナビゲーションコントローラに基づいているかどうか、そしてナビゲーションバーがそのビューで表示されるかどうかを知りたい。どうすれば見つけることができますか?iOS - ナビゲーションバーを確認
答えて
UINavigationBar
は、UIView
のすべての細かいプロパティおよび動作を持ち、これらのプロパティの1つはhidden
です。
ナビゲーションバーのハンドルを取得できる場合は、hidden
がYES
またはNO
であるかどうかを確認するだけです。これを行うには
一つの方法は、ナビゲーションコントローラを設定および/またはあなたのライブラリーの代わりにバーできるライブラリを使用していますので、誰でも自分のライブラリーのためのUINavigationControllerプロパティまたはアクセサ(セッター&ゲッターを)持っていることであろう。
私は返信に遅れていますが、同じことをやろうとする他の人(私のように:D)です。
このコードは、あなたの問題を解決することがあります。
id nav = [UIApplication sharedApplication].keyWindow.rootViewController;
if ([nav isKindOfClass:[UINavigationController class]]) {
UINavigationController *navc = (UINavigationController *) nav;
if(navc.navigationBarHidden) {
NSLog(@"NOOOO NAV BAR");
} else {
NSLog(@"WE HAVE NAV BAR");
}
}
私はこのスニペットを長年使ってきました(ありがとう)。私は最近不足を発見した。 UIAlertViewが現在表示されている場合、この関数は失敗します。さらに調査したところ、次のことが明らかになりました。 '(lldb)po nav <_UIAlertShimPresentingViewController:0x7fa00d095fb0>'このケースを処理するための提案はありますか? – alexgophermix
ありがとう、仲間。シンプルで良い。乾杯! – Felipe
@alexgophermix私はあなたがUIApplicationからWindowsのproperyアレイを使用し、あなたのルートコントローラを見つけることができると思う、その瞬間に2つのウィンドウがあると思う。 –
- 1. ナビゲーションバーの可視性を確認する
- 2. iOSナビゲーションバー
- 3. RSA署名の確認iOS
- 4. ナビゲーションバーのUIButtonがiOS 11のタップを認識しない
- 5. スキャナビューのナビゲーションバー - IOS - Swift
- 6. iOS Facebook SDK - 許可を確認する
- 7. iOS:リモートファイルの更新を確認する
- 8. coord(iOS)でピクセルを確認する
- 9. iOSアプリケーションの署名を確認する
- 10. iOSのインターネット接続を確認する
- 11. iOSの11は、iOS 10では、ナビゲーションバー
- 12. AWS Cognitoセッションの確認と再開(iOS)
- 13. IOSでのFacebook Connectセッションの確認
- 14. デフォルトのナビゲーションバーの高さios
- 15. ios 11の透明なナビゲーションバー
- 16. iOS SDK - Peep View CControllerのナビゲーションバー
- 17. 透明ナビゲーションバー迅速iOSの
- 18. UIBarButtonItem setTitlePositionAdjustment on iOS 7ナビゲーションバー
- 19. Xamarin iOSのナビゲーションバーの画像
- 20. Swiftを使用してIOS開発でナビゲーションバーをオーバレイするナビゲーションバー
- 21. facebookとサーバー側の確認でios認証
- 22. コレクションの変更ナビゲーションバーのボタンでセルの背景を確認する
- 23. iOSのナビゲーションバーのタイトルは、ビューが
- 24. iOSの11ナビゲーションバー大タイトルポップ・ビュー・コントローラ
- 25. MFMailComposeViewControllerのナビゲーションバーのios 11の問題
- 26. 水平区切りナビゲーションバーIOS 7
- 27. IOS Music Appと同じナビゲーションバーのトランジション
- 28. iOS 7のナビゲーションバーの高さは?
- 29. コントローラなしのプッシュでiOSナビゲーションバー
- 30. iOS 11 - ナビゲーションバー大きなタイトルのカスタムオフセット
私は、ナビゲーションバーのプロパティを知っています。しかし、アプリケーションがナビゲーションコントローラに基づいているかどうかを確認する方法は?アプリがナビゲーションコントローラに基づいている場合は、ナビゲーションバーのプロパティを確認できます。ではない? – Satyam
ナビゲーションバーのハンドルを取得するにはどうすればよいですか? – Satyam
ビューコントローラまたはアプリケーションデリゲートのいずれかにナビゲーションコントローラがある場合は、それがIBOutletであることを確認してから、ナビゲーションバーの[UINavigationController'のnavigationBarプロパティ](https://developer.apple .com/library/ios/documentation/UIKit/Reference/UINavigationController_Class/Reference/Reference.html#// apple_ref/occ/instp/UINavigationController/navigationBar)(ドキュメントはあなたのためにリンクされています) –