2015-11-15 5 views
15

NavBarを作成しようとしましたが、NavBarは問題ありませんが、ボタンを追加しようとするとタイトルが取得されます。ButtonとTitle Swiftを使ってプログラムでNavBarを作成

私のNavBarので、私は

navigationBar.topItem.title = "some title" 
or 
navigationBar.title = "some title" 

ように私のナビゲーションバーのタイトルを設定しようとしたが、両方失敗

let NameHeight = screenHeight * 0.09 
let NameWidth = screenWidth 
let navBar: UINavigationBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: NameWidth, height: NameHeight)) 
self.view.addSubview(navBar) 

のように見えます。
また、私は、これは私にエラーを与えるものではありませんボタンを

let btnName = UIButton() 
btnName.setImage(UIImage(named: "imagename"), forState: .Normal) 
btnName.frame = CGRectMake(0, 0, 30, 30) 
btnName.addTarget(self, action: Selector("action"), forControlEvents: .TouchUpInside) 

//.... Set Right/Left Bar Button item 
let rightBarButton = UIBarButtonItem() 
rightBarButton.customView = btnName 
self.navigationItem.rightBarButtonItem = rightBarButton 

を設定しようとするが、ボタンは単に

答えて

26

が表示されていないあなたは、ナビゲーション・アイテム・インスタンスと設定されたタイトルと、左/右のボタンを作成する必要がある場合それに。ナビゲーション項目を設定したら、ナビゲーションバーに追加します。

let navBar: UINavigationBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: 320, height: 44)) 
self.view.addSubview(navBar); 
let navItem = UINavigationItem(title: "SomeTitle"); 
let doneItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, target: nil, action: "selector"); 
navItem.rightBarButtonItem = doneItem; 
navBar.setItems([navItem], animated: false); 
+0

おかげでazimovの答えは、このすでに:-)を働くが、それでも「カスタムイメージを設定し、」あなたは私にこの上のヒントを与えることができる私のために失敗しましたか? –

+0

せdoneItem = UIBarButtonItem(画像:画像1、landscapeImagePhone:nilに、スタイル:UIBarButtonItemStyle.Plain、ターゲット:nilに、アクション: "アクション1:") はそれ –

+0

はあなたがナビゲーションバーの幅のルートビュー –

14

基本的にスウィフト4

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.setNavigationBar() 
} 

func setNavigationBar() { 
    let screenSize: CGRect = UIScreen.main.bounds 
    let navBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: screenSize.width, height: 44)) 
    let navItem = UINavigationItem(title: "") 
    let doneItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.done, target: nil, action: #selector(done)) 
    navItem.rightBarButtonItem = doneItem 
    navBar.setItems([navItem], animated: false) 
    self.view.addSubview(navBar) 
} 

@objc func done() { // remove @objc for Swift 3 

} 
関連する問題