0

我在 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 图像的大小,但没有运气。我包括了对背景进行着色的线 aobut 以防万一它是相关的,即使我已经尝试过使用和不使用它。

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)
4

1 回答 1

0

迅捷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)

将您的代码替换为上面的代码。

于 2016-12-13T04:10:00.343 回答