0

Я использую Swift 2.3 в Xcode 7.3. У меня есть UINavigationController с UITableViewController. Я пытаюсь установить titleView элемента навигации в navigationBar, чтобы создать кнопку, центрированную в панели навигации.TitleView файла UINavigationItem UITableViewController не отображается

IndexTextBut - это UIButton, подключенный к доске объявлений. Я попробовал просто создать новую кнопку, и это не имело заметной разницы. То, как я сейчас делаю это, есть кнопка, так как она имеет поведение, которое она должна, но не изображение. Я попытался просто установить поле заголовка в виде строки, и даже тогда ничего не вижу. Я установил правый и левый столбцы с помощью:

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) 

ответ

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) 

заменить код выше.

+0

Я использую Swift 2. Код был легко преобразован в Swift 2, только разница была «forState: .Normal» вместо «for: .normal». Тем не менее, это не сработало, я до сих пор не вижу визуальной индикации кнопки или даже текста заголовка («кнопка»). – Shreck