我在Xcode 7.3中使用Swift 2.3。我有一个带UITableViewController的UINavigationController。我正在尝试在navigationBar中设置导航项的titleView,以创建一个以导航栏为中心的按钮。
indexTextBut是一个从故事板连接起来的UIButton。我试过创建一个新按钮,但它没有产生任何可察觉的差异。我目前正在做的方式按钮就在那里,因为它有行为,但没有图像。我试过将标题字段设置为字符串,即便如此,我什么也看不见。我使用:
设置了右边和左边的barButtonItemsnavItem.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 :(得分: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)
将您的代码替换为上面。