【问题标题】:Navigation Bar Across Multiple Storyboards跨多个故事板的导航栏
【发布时间】:2018-12-21 06:54:59
【问题描述】:

我已将我的视图分成多个故事板,以便更轻松地以团队的形式管理项目。唯一的问题是我希望在所有不同的视图控制器中都有导航栏。我将第一个视图控制器嵌入到添加导航栏的导航控制器中。在我的第二个故事板中,我想将视图约束到导航栏,但是,由于此视图控制器没有嵌入导航控制器中,因此没有任何东西可以约束视图。我放置了一个没有导航控制器的导航栏来约束,但是,当我从第一个故事板执行 segue 时,这会导致两个导航栏。我该如何做到这一点,以便我可以将视图约束到导航栏而不需要其中两个?提前致谢!

【问题讨论】:

  • 只限于顶部布局指南。如果存在,这将在运行时尊重导航栏。
  • @Paulw11 我怎么没想到呢?哈哈,非常感谢这个人

标签: ios swift uinavigationcontroller uinavigationbar segue


【解决方案1】:

您可以通过三种方式从一个视图控制器转到另一个视图控制器:-

首先使用 segue,就像你已经在做的那样

second 你可以通过

来展示你的视图控制器
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) 

【讨论】:

    【解决方案2】:

    我不确定你的问题。我猜你想使用一个导航栏来约束不同 Storyboard 中的许多 UIViewController。这是我的答案。

    第 1 步:在每个 UIViewController 中设置 Storyboard 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)
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-31
      • 1970-01-01
      • 1970-01-01
      • 2017-03-18
      • 2016-02-04
      • 1970-01-01
      相关资源
      最近更新 更多