0

Ich verwende Swift 2.3 in Xcode 7.3. Ich habe einen UINavigationController mit einem UITableViewController. Ich versuche, die titleView des Navigationselements in der navigationBar festzulegen, um eine Schaltfläche in der Navigationsleiste zentriert zu erstellen.TitleView von UITableViewControllers UINavigationItem Bild nicht sichtbar

Der IndexTextBut ist ein UIButton aus dem Storyboard angeschlossen. Ich habe versucht, nur einen neuen Knopf zu erstellen, und es machte keinen wahrnehmbaren Unterschied. Die Art und Weise, wie ich es gerade mache, ist der Button, da er das Verhalten hat, aber kein Bild. Ich habe versucht, nur das Titelfeld als String zu setzen und selbst dann sehe ich nichts. Ich setze die rechte und linke barButtonItems mit:

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

Hier ist meine relevanten Code. Meine große Frage ist, warum kann ich nicht sehen, dass das Bild der Schaltfläche auf die Titelansicht eingestellt ist. Es hat ein voreingestelltes Verhalten und wenn ich klicke, wo es sein sollte, bekomme ich dieses Verhalten. Ich habe versucht, den Rahmen des UIButton und seine UIImageView und die Größe des Bildes UIImageView zu justieren, aber hatten kein Glück. Ich habe die Zeile eingefügt, die den Hintergrund tönt, nur wenn es verwandt ist, obwohl ich es mit und ohne versucht habe.

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) 

Antwort

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) 

Ihren Code oben ersetzen.

+0

Ich benutze Swift 2. Der Code war einfach zu Swift 2 zu konvertieren, nur der Unterschied war "forState: .Normal" statt "for: .Normal". Das heißt, es hat nicht funktioniert, ich bekomme immer noch keine visuelle Anzeige der Taste oder sogar des Titeltextes ("Knopf"). – Shreck

Verwandte Themen