【问题标题】:How to go "without navigation bar view controller" to "with navigation bar view controller" in Swift如何在 Swift 中“没有导航栏视图控制器”到“有导航栏视图控制器”
【发布时间】:2016-09-09 08:01:28
【问题描述】:

我有一个项目,它有很多 view controllers ,例如StartViewController有导航栏)。还有processViewControllerprocessViewController有很多viewsprocessViewController没有导航栏

processViewController 有 Close button 和 action with;

@IBAction func goStart(sender: UIButton) {
    let secondViewController = self.storyboard?.instantiateViewControllerWithIdentifier("StartViewController") as! StartViewController
    self.navigationController?.pushViewController(secondViewController, animated: true)
}

当我推它的时候;

navigationController!.navigationBar.barTintColor = UIColorFromRGBs(0x000000)
navigationController!.navigationBar.tintColor = UIColor.whiteColor();

let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 164, height: 38))
imageView.contentMode = .ScaleAspectFit
let image = UIImage(named: "logo")
imageView.image = image
navigationItem.titleView = imageView

这些行给出错误。

我该如何解决?如何从没有导航栏视图控制器到使用导航栏视图控制器?

【问题讨论】:

  • 哪一行出错
  • @Anbu.Karthik navigationController!.navigationBar.barTintColor = UIColorFromRGBs(0x000000) 兄弟
  • @Anbu.Karthik comming without navigation bar segue to with navigationbar view controller 我认为给了这个
  • 你是声明UIColorFromRGBs的方法吗
  • @Anbu.Karthik 工作正常!

标签: ios swift storyboard


【解决方案1】:

从没有导航栏的视图控制器到有导航栏的视图控制器的唯一方法是以模态方式呈现它

因此,当您创建想要在其父视图控制器中呈现的视图控制器时,将此目标控制器嵌入导航控制器中,然后呈现包含您的目标视图控制器的导航控制器。

斯威夫特 3

let targetViewController = UIViewController() // this is that controller, that you want to be embedded in navigation controller
let targetNavigationController = UINavigationController(rootViewController: targetViewController)
        
self.present(targetNavigationController, animated: true, completion: nil)

【讨论】:

    【解决方案2】:

    那是因为您试图在课堂上获取 navigationControllernavigationBar 或未嵌入导航控制器的 viewcontroller。所以你会得到nil 作为navigationbarnavigationController 这样你就不能设置它的属性,因为它是nil 或者当前viewcontroller 不存在。

    在您的viewcontroller 中管理这些具有导航控制器embed 的东西!

    【讨论】:

    • 您需要在嵌入navigation controllerviewController中设置导航栏的不同属性!!告诉我你在哪里设置barTintColor?你的问题也不是很清楚你想要什么!提供必要的信息,以便我可以提供帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    • 2011-09-18
    相关资源
    最近更新 更多