2016-11-10 4 views
0

UIViewControllerのサブクラスに、ナビゲーションバーのタイトルにラベル(UILabel)を設定しようとしています。 self.titleに名前を設定する代わりに、属性付き文字列を使用してタイトルを設定したいと考えています。NavigationBarを使用してUIViewControllerをサブクラス化するタイトル

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() 
    } 
} 

このコードを実行すると、空のタイトルが表示されます。私は間違って何をしていますか?ありがとう。

+0

「タイトルラベル」はどのビューにも追加されていますか? 次のdidSetメソッドbtwを使うことができるので、文字列を設定した後に 'setup()'を実行する必要はありません。 '' 'VARのtitleString = ""{ didSet { せナビゲーションバー= navigationController!.navigationBar (...) } }' ''私が直接行を挿入した場合 – Houwert

+0

titleLbelは、ナビゲーションバーに追加することができますHomeViewControllerのviewDidLoadを使用してsetup()内のコードを削除します。 –

答えて

0

設定する場所が表示されません

関連する問題