2017-04-10 2 views
0

ich einen UINavigationController programmatisch bin die Schaffung und meine Viewcontroller, um es hinzuzufügen:RightBarButtonItem wird in der korrekten Position nicht angezeigt

// wrap in a navigation controller 
let navigationController = UINavigationController(rootViewController: myViewController) 
self.present(navigationController, animated: true, completion: nil) 

Und dann ein Bild zu Navigationspunkt hinzufügen:

let backButton: UIBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: target, action: selector) 
backButton.image = UIImage(named: "ic_back") 
self.navigationItem.rightBarButtonItem = backButton 

Aber meinen BarButton wird nicht am richtigen Ort angezeigt. Was mache ich falsch?

enter image description here

+0

Das könnte auch mal ein Bildproblem sein. Bitte überprüfen Sie mit anderen Bildern. Wenn es mit anderen Bildern gut funktioniert, ist es sicherlich ein Problem mit dem Bild, das Sie verwenden. –

+0

Mqke sicher, dass x und y in der Balkenanzeige auf Null stehen –

Antwort

3

Sie müssen UIBarButton direkt an UIImage oder benutzerdefinierten Ansicht init:

heißt

Swift 3.0:

let image = UIImage(named: "ic_back")?.withRenderingMode(.alwaysOriginal) 
let button = UIBarButtonItem(image: image, style: .plain, target: target, action: selector) 

self.navigationItem.rightBarButtonItem = button 

Dies wird Ihr Problem beheben.

1

alloc und init UIButton mit gewünschten Rahmen! Setze das Bild auf diese Schaltfläche. Stellen Sie den Content-Modus bei Bedarf ein! Fügen Sie ein Ziel auf dieser Schaltfläche hinzu, um mit dem Klick umzugehen! dann alloc and initUIBarButtonItem mit initWithCustomView Methode und übergeben UIButton als Parameter, den Sie erstellt haben.

Setzen Sie dann navigationItems rightBarbuttonItem auf diese Schaltfläche!

0
let btn1 = UIButton(type: .custom) 
btn1.setImage(UIImage(named: "imagename"), for: .normal) 
btn1.frame = CGRect(x: 0, y: 0, width: 30, height: 30) 
btn1.addTarget(self, action: #selector(Class.Methodname), for: .touchUpInside) 
let item1 = UIBarButtonItem(customView: btn1) 

self.navigationItem.setRightBarButtonItems(item1, animated: true) 
0

Sie können den Knopf auf Navigationsleiste wie folgt festgelegt ..

let Button = UIButton(frame: CGRect(x: 0, y: 0, width: 35, height: 40)) 
    Button.setBackgroundImage(UIImage(named: "btn.png"), for: .normal) 
    self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: Button) 

So ist dieser Code hilft Ihnen, Ihre Abfrage

-1

Rahmen hinzufügen zu Ihrem backbutton mit dem folgenden Code zu erreichen, und lassen Sie uns wissen wenn es funktioniert hat.

backButton.frame = CGRect(x: 0, y: 0, width: 50, height: 50) 

Sie können die Breite und Höhe ändern gem. zu deinem Bedürfnis.

Verwandte Themen