0

Xcode 7.3でSwift 2.3を使用しています。私はUITableViewControllerを持つUINavigationControllerを持っています。ナビゲーションバーの中央にあるボタンを作成するためにナビゲーションバーのナビゲーション項目のtitleViewを設定しようとしています。TitleView of UITableViewControllerのUINavigationItemイメージが表示されない

indexTextButはストーリーボードから引き出されたUIButtonです。私はちょうど新しいボタンを作成しようとしました、そして、それは認識可能な違いをもたらしませんでした。私が現在それをやっているやり方は、そのイメージがなければならないという振る舞いを持っているからです。私はタイトルフィールドを文字列として設定しようとしましたが、それでも私は何も見ません。私は右と左のbarButtonItemsを使用して設定します:

navItem.setRightBarButtonItems(barButtonItems, animated: false) 
navItemArray.append(navItemCatDet) 
self.navigationController?.navigationBar.setItems(navItemArray, animated: false) 

これは私の関連コードです。私の大きな疑問は、なぜボタンの画像がtitleViewに設定されているのかわかりません。それはあらかじめ設定された振る舞いを持ち、どこをクリックすればその振る舞いが得られます。私は、UIButtonとそのUIImageViewのフレームとUIImageViewの画像のサイズを調整しようとしましたが、運がなかった。私はバックグラウンドを塗りつぶしたラインを含めました。たとえそれを試してみたとしても、関連性があります。

class MyTableViewController: UITableViewController, UITextFieldDelegate { 

    @IBOutlet weak var indexTextBut: UIButton! 

    override func viewDidLoad() { 
    super.viewDidLoad() 

    var indexNavItemArray = [UINavigationItem]() 
    var indexNavItem = UINavigationItem() 

    indexNavItem.titleView = newButton 
    indexNavItemArray.append(indexNavItem) 

    self.navigationController?.navigationBar.barTintColor = UIColor(netHex:0xe63246) 
    self.navigationController?.navigationBar.setItems(indexNavItemArray, animated: false) 

答えて

0

SWIFT 3.0

var indexNavItemArray = [UINavigationItem]() 
     var indexNavItem = UINavigationItem() 

     indexNavItem.titleView = indexTextBut 
     indexTextBut.setTitle("button", for: .normal) 
     indexNavItemArray.append(indexNavItem) 
     self.navigationController?.navigationBar.barTintColor = UIColor.lightGray 

     self.navigationController?.navigationBar.setItems(indexNavItemArray, animated: false) 

以上にあなたのコードを置き換えます。

+0

私はSwift 2を使用しています。コードはSwift 2に変換するのが簡単でしたが、違いはforState:.Normalの代わりにfor:.normalです。それはそれが動作しなかった、私はまだボタンまたはタイトルテキスト( "ボタン")の視覚的な指示を取得しないと述べた。 – Shreck

関連する問題