簡體   English   中英

跨多個故事板的導航欄

[英]Navigation Bar Across Multiple Storyboards

我已將我的視圖分成多個故事板,以便更輕松地作為一個團隊管理項目。 唯一的問題是我希望在所有不同的視圖控制器中都有導航欄。 我將第一個視圖控制器嵌入到添加了導航欄的導航控制器中。 在我的第二個故事板中,我想將視圖約束到導航欄,但是,由於此視圖控制器未嵌入到導航控制器中,因此沒有任何可以約束視圖的內容。 我放置了一個沒有導航控制器的導航欄來限制,但是,當我從第一個故事板執行 segue 時,這會導致兩個導航欄。 我如何做到這一點,以便我可以將視圖限制在導航欄上而沒有兩個? 提前致謝!

我不確定你的問題。 我猜您想使用一個導航欄來約束不同 Storyboard 中的許多 UIViewController。 這是我的答案。

第 1 步:在每個 UIViewController 中設置 Storyboard ID

故事板 ID

第二步:推送新的 UIViewController

func switchNextView() {
    let storyboardName:String = "xxxxxx"
    let storyboardId:String = "xxxxx"

    let storyboard = UIStoryboard(name: storyboardName, bundle: nil)
    let vc: UIViewController = 
        storyboard.instantiateViewController(withIdentifier: storyboardId) as! 
        UIViewController
    self.navigationController?.pushViewController(vc, animated: true)
}

您可以通過三種方式從一個視圖控制器轉到另一個視圖控制器:-

首先使用 segue,因為你已經在做

第二,您可以通過以下方式展示您的視圖控制器

let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "someViewController")
self.present(controller, animated: true, completion: nil) 

第三,您可以通過以下方式導航視圖控制器

let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil)
    let controller = storyboard.instantiateViewController(withIdentifier: "someViewController")
    self.navigationController?.pushViewController(controller, animated: true) 

謝謝你的協助。 如@ Paulw11的評論中所述,以下工作有效

“僅限於頂部布局指南。這將在運行時遵守導航欄(如果存在的話)。”

再次感謝您的幫助! 干杯。

暫無
暫無

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

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