简体   繁体   中英

Subclassing UIViewController With NavigationBar Title

I'm trying to subclass a UIViewController with a label ( UILabel ) set to the title of the navigation bar. Instead of setting a name to self.title, I want to use an attributed string to set the title.

class BasicViewController: UIViewController {
    var titleString = ""

    func setup() {
        //self.title = titleString
        let navBar = navigationController!.navigationBar
        navBar.barTintColor = UIColor.redColor()
        let atext = NSMutableAttributedString(string: titleString)
        atext.addAttribute(NSForegroundColorAttributeName, value: UIColor.whiteColor(), range: NSMakeRange(0, atext.length))
        atext.addAttribute(NSStrokeColorAttributeName, value: UIColor.yellowColor(), range: NSMakeRange(0, atext.length))
        atext.addAttribute(NSStrokeWidthAttributeName, value: NSNumber.init(float: -1.0), range: NSMakeRange(0, atext.length))
        let titleLabel:UILabel = UILabel.init(frame: CGRectMake(50, 3, 220, 44))
        titleLabel.attributedText = atext
        titleLabel.textAlignment = NSTextAlignment.Center
        titleLabel.font = UIFont(name: "Helvetica", size: 24.0)
    }
}

class HomeViewController: BasicViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        titleString = "My App"
        setup()
    }
}

If I run this code, I get an empty title. What am I doing wrong? Thanks.

我看不到您在哪里设置self.navigationItem.titleView = titleLabel

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM