首页 文章

在iOS8 Swift中更改UINavigationBar Headers

提问于
浏览
7

我以编程方式在我的Superview中添加了UINavigationBar,名为BaseViewController,它继承了UIViewController . 但是当我尝试为UINavigationBar设置 Headers 时 . 我收到名为 fatal error: Can't unwrap Optional.None 的错误

以下是我的快速课程 . 如何解包和更改UINavigationBar Headers

import UIKit

class BaseViewConroller: UIViewController {
    var navBar:UINavigationBar=UINavigationBar()

    override func viewDidLoad() {
        super.viewDidLoad()
        setNavBarToTheView()
        // Do any additional setup after loading the view.
        navBar.topItem.title="test test"
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func setNavBarToTheView()
    {
        navBar.frame=CGRectMake(0, 0, 320, 50)
        navBar.backgroundColor=(UIColor .blackColor())
        self.view .addSubview(navBar)
    }

}

4 回答

  • 28

    navBar.topItem.title="test test" 替换为 self.title="test test" . 干杯!!

  • 0

    以实际方式更改导航栏文本 . 只需调用下面写的func setNavigationBarTitleText("WhateverTextNeeded") 即可 . 我假设您已经配置了UINavigationBar .

    var navBar = UINavigationBar(frame: CGRectZero)
    
    func setNavigationBarTitleText(text: String){
        let titleLabel = UILabel(frame: CGRectMake(0, 0, view.frame.size.width - 120, 44))
        titleLabel.backgroundColor = UIColor.clearColor()
        titleLabel.numberOfLines = 2
        titleLabel.font = UIFont(name: UIConfig.Fonts.OswaldRegular,  size: 16)
        titleLabel.textAlignment = NSTextAlignment.Center
        titleLabel.text = text.uppercaseString
        self.navBar.topItem?.titleView = titleLabel
    }
    

    我希望这有帮助 .

  • 0
    UILabel *labelTitle = UILabel(frame: CGRectZero);
    labelTitle.text = "Title";
    labelTitle.text.textAlignment = NSTextAlignment.Center
    self.navigationItem.titleView = labelTitle;
    

    我有这个代码...我希望,这可以帮到你 .

  • 0

    您可以使用此代码转换导航栏 .

    self.navigationController?.navigationBar.backIndicatorImage = UIImage(named: "imageName")
        self.navigationController?.navigationBar.backIndicatorTransitionMaskImage = UIImage(named: "imageName")
        self.navigationController?.navigationBar.backItem?.title = ""
        self.navigationController?.navigationBar.tintColor = UIColor.white
        self.title = "Title"
    

相关问题