簡體   English   中英

如何將bar導航欄的位置更改為頂部

[英]How to change barPosition of navigationBar to topAttached in swift3

我需要將navController的navBar的barPosition更改為topAttached類型。 我嘗試使用UINavigationBarDelegate的position(for bar :)方法。 在MyViewController類中:

navigationController?.navigationBar.delegate = self

並擴展為:

extension MyViewController: UINavigationBarDelegate{
    func position(for bar: UIBarPositioning) -> UIBarPosition {
        return .topAttached
    }
}

但這不起作用,因為

由於未捕獲的異常“ NSInternalInconsistencyException”而終止應用程序,原因:“無法在控制器管理的UINavigationBar上手動設置委托。”

那么這里還有其他方法可以在Swift 3中更改barPosition嗎? 提前致謝!

NavigationBar.position是一個readonly屬性。 您無法更改。 如果要更改導航欄的框架。 首先更改UINavigationController的框架,然后將其插入。

例:

如果要向下移動它:

    self.navigationController?.view.frame = CGRect(x: 0.0, y: 100.0, width: 320.0, height: 426.0)
    self.navigationController?.navigationBar.frame = CGRect(x: 0.0, y: 0.0, width: 320.0, height: 44.0)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM