我正在創建一個庫,它將在應用程序的底部添加一個視圖(當我的庫集成到應用程序中時)。
我使用視圖控制器的視圖的框架參數來獲取視圖的大小和計算我的圖書館的視圖框架並顯示它。
問題是,當導航欄在那裏時,我的視圖仍然在可見的實際視圖下方。所以,我想知道當前視圖控制器是否基於導航控制器,以及導航欄在該視圖中是否可見。我怎麼能找到它?iOS - 檢查導航欄
回答
UINavigationBar
繼承自並具有所有優良屬性和行爲UIView
,其中一個屬性爲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 2015-07-15 21:49:26
非常感謝,夥伴。簡單而好。乾杯! – Felipe 2015-09-15 16:55:43
@alexgophermix我認爲你可以使用UIApplication的windows propery數組,並找到你的根控制器,我想在那一刻你將有2個窗口。 – 2015-09-15 23:25:03
- 1. 檢查導航欄的可見性
- 2. iOS 11 SearchBar導航欄
- 3. iOS文本導航欄
- 4. Nativescript - 隱藏導航欄(IOS)
- 5. ios 11透明導航欄
- 6. iOS:在自定義導航欄中定位導航欄按鈕
- 7. IOS半透明導航欄,但堅實的導航欄按鈕
- 8. iOS導航欄:隱藏導航欄和平滑過渡
- 9. 的iOS 9導航欄在狀態欄
- 10. iOS 11,狀態欄,導航欄和UIScrollview
- 11. 側欄導航改爲導航欄中的頂部導航欄
- 12. 自定義導航欄給我雙導航欄iN查看
- 13. 導航欄上方的導航欄
- 14. Bootstrap導航欄:導航欄 - 右
- 15. 如何在導航欄下查看
- 16. iOS導航控制器不添加導航欄
- 17. 帶導航條但沒有控制器的iOS導航欄
- 18. 導航欄故障時使用iOS 7刷卡導航
- 19. MWPhotoBrowser - 導航欄消失在iOS 8
- 20. 棒XIB到導航欄的ios
- 21. iMessage(iOS 10)中的導航欄高度
- 22. iOS導航欄圖標大小iPhone 6
- 23. 的iOS雙導航欄半透明OFF
- 24. 在ios中自定義導航欄
- 25. 的iOS NavigationController隱藏導航欄
- 26. iOS 11導航欄高度自定義
- 27. 子視圖添加到導航欄ios
- 28. 導航欄項目調整在IOS
- 29. iOS的11導航欄圖標問題
- 30. IOS使用不同的導航欄
我知道導航欄的屬性。但如何檢查應用程序是否基於導航控制器?如果該應用基於導航控制器,我可以檢查導航欄的屬性。不是嗎? – Satyam 2012-02-21 11:58:39
如何獲取導航欄的句柄? – Satyam 2012-04-14 02:48:10
如果你在你的視圖控制器或你的應用程序委託中有一個導航控制器,確保它是一個IBOutlet,然後你可以通過['UINavigationController'的navigationBar屬性](https://developer.apple /images/ios/documentation/UIKit/Reference/UINavigationController_Class/Reference/Reference.html#// apple_ref/occ/instp/UINavigationController/navigationBar)(爲您鏈接的文檔) – 2012-04-14 04:47:32