web-dev-qa-db-ja.com

Swiftナビゲーションバーボタンとタイトルが表示されない

アプリの上にナビゲーションバーを作成したいと思います。 Navigation Controller-> Tab Bar Controller-> Navigation Controller-> Table Controllerを作成しました

  1. 右上のバーボタンアイテムをドラッグしました。
  2. テーブルコントローラーの中央にあるタイトルをダブルクリックして、テキストを書きました。
  3. また、コントローラーのviewDidLoad()でこのコードを使用して試しました。

    self.navigationController.navigationBar.topItem.title = "some title"
    self.navigationItem.setRightBarButtonItem(UIBarButtonItem(barButtonSystemItem: .Search, target: self, action: "barButtonItemClicked:"), animated: true)
    self.navigationItem.title = "YourTitle"
    

うまくいかなかった-私は何を間違えているのか? :/

17
Joe

次のようなものを試すことができます:

self.title = "Your Title"

var homeButton : UIBarButtonItem = UIBarButtonItem(title: "LeftButtonTitle", style: UIBarButtonItemStyle.Plain, target: self, action: "")

var logButton : UIBarButtonItem = UIBarButtonItem(title: "RigthButtonTitle", style: UIBarButtonItemStyle.Plain, target: self, action: "")

self.navigationItem.leftBarButtonItem = homeButton
self.navigationItem.rightBarButtonItem = logButton
34
Va Visal

titleViewを探していると思います。

試してください:

var navBarTitleView = UIView(frame: CGRectMake(0.0, 0.0, self.view.frame.width, 44.0))
navBarTitleView.backgroundColor = UIColor.brownColor()
self.navigationItem.titleView = navBarTitleView
2
Katafalkas

ナビゲーションバーに表示されるタイトルであるviewDidLoadで、テーブルコントローラーのタイトルを設定することができると確信しています。

この答えは少し異なる質問を説明していますが、概念は同じです:

https://stackoverflow.com/a/25167491/2070902

1
robotwholearned

"UINavigationBar"を希望に応じて設定する場合は、これを非常に安全に実行してください。Swift =言語、それはあなたをたくさん助けることを願っています。

ステップ1:-

Swiftただ進む "新しいファイル"でカテゴリクラスを作成し、追加 "Simple Swift class"および名前 "MyCustomNavBarCategory.Swift"

ステップ2:-

Just "クラスをクリーンアップ(このクラスからすべてのコードを削除)"および "以下のコードを貼り付け":-

// classは下の行から開始しますここからコピーを開始します

let SCREEN_HEIGHT = UIScreen.mainScreen()。bounds.size.height

uIKitをインポート

拡張機能UINavigationBar {

//First increase navigation bar height .
override public func sizeThatFits(size: CGSize) -> CGSize {
    NSLog("%f", SCREEN_HEIGHT*0.06);

    let newSize:CGSize = CGSizeMake(self.frame.size.width, SCREEN_HEIGHT*0.10)
    return newSize;
}

//then set layOut of your Custom Nav for several objects like titleview,buttons and all
public override func layoutSubviews() {
   for var view in self.subviews
    {
        NSLog("view %@", view);
        let str :String = view.classForCoder.description();
       if(str == "UILabel")
        {
              //play with title view frame
            var f       = view.frame;
            f.Origin.y  = self.frame.size.height/2 - view.bounds.size.height/2  ;
            view.frame  = f;
            view.backgroundColor = UIColor.greenColor();
        }
        else if(str == "UIButton")
        {

             //play with buttons of navigation bar  view frame
            var f = view.frame;
            f.Origin.y = (self.frame.size.height/2)  - (view.bounds.size.height/2) ;
            view.frame = f;
            view.backgroundColor = UIColor.greenColor();
        }
    }
}

}

//クラスは上記で終了します上記の行でコードのコピーを停止し、これを過ぎて "MyCustomNavBarCategory。スイフト」。それは楽しみです;)。

STEP 3:-これで、このクラスのUINavigationBarの任意のオブジェクトに任意のフレームを設定できます」これは非常に強力なカテゴリですUINavigationBarを慎重に実装する場合」

0