Xcode 7.3 で Swift 2.3 を使用しています。UITableViewController を持つ UINavigationController があります。ナビゲーションバーのナビゲーションアイテムの titleView を設定して、ナビゲーションバーの中央にボタンを作成しようとしています。
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)