17

アプリの上にナビゲーション バーを作成したいと思います。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"
    

それはうまくいきませんでした - 私は何が間違っていますか? :/

4

4 に答える 4

34

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

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
于 2014-10-24T03:59:50.847 に答える
2

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

試す:

var navBarTitleView = UIView(frame: CGRectMake(0.0, 0.0, self.view.frame.width, 44.0))
navBarTitleView.backgroundColor = UIColor.brownColor()
self.navigationItem.titleView = navBarTitleView
于 2014-10-18T16:43:34.843 に答える
1

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

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

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

于 2014-08-21T14:51:48.547 に答える
0

希望に応じて「UINavigationBar」を設定したい場合は、これを非常に安全に実行してください。迅速な言語で非常にシンプルです。大いに役立つことを願っています。

ステップ1:-

Swiftでカテゴリクラスを作成するには、「新しいファイル」に進み、 「Simple swift class」を追加して、 「MyCustomNavBarCategory.swift」という名前を付けます

ステップ2:-

「クラスをクリーンアップする(このクラスからすべてのコードを削除する)」と「私の与えるコードを下に貼り付ける」だけです:-

// クラスは下の行 から開始 ここからコピーを開始

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.swift"に貼り付けます。それだけです;)。

ステップ 3:- これで、このクラスの UINavigationBar の任意のオブジェクトに任意のフレームを設定できます

于 2015-12-11T14:05:53.437 に答える