Ich habe eine Frage zum Hinzufügen einer rechten Schaltfläche in der Navigationsleiste.
Ich habe zwei Ansichten: Ansicht A und Ansicht B
Ich füge eine Navigationsleiste hinzu, um A anzuzeigen, nachdem ich self.navigationController!.pushViewController
verwendet habe, um Ansicht B anzuzeigen.
Dass eine Schaltfläche "Zurück" in der linken Navigationsleiste von Ansicht B automatisch angezeigt wird, ist gut. aber jetzt möchte ich eine Schaltfläche in der rechten Navigationsleiste von Ansicht B hinzufügen. Ich habe ein paar Antworten ausprobiert, aber es funktioniert nicht .... Ich habe Antworten versucht, wie:. 1 ) https://www.hackingwithswift.com/example-code/uikit/how-to-add-a-bar-button-to-a-navigation-bar 2) http://blog.apoorvmote.com/add-multiple-bar-button-itemnavigation-bar/?lang=fr
Könnten Sie mir helfen, danke!
Die schnelle Version von Vahan Babayans Antwort, wie Sie diese Sprache zu verwenden scheinen, lautet:
let rightButtonItem = UIBarButtonItem.init(
title: "Title",
style: .Done,
target: self,
action: "rightButtonAction:"
)
self.navigationItem.rightBarButtonItem = rightButtonItem
Die folgende Methode wird bei self aufgerufen:
func rightButtonAction(sender: UIBarButtonItem)
Beachten Sie, dass dies alles - grafisch über ein Storyboard festgelegt werden kann , indem Sie ein Bar-Schaltflächenelement auf Ihr Navigationselement ziehen und mit der rechten Maustaste darauf klicken, um eine Zielaktion festzulegen.
Ein kleines Update seit dem Start von Swift 3 und 4: Der Compiler kann jetzt die Namen der Selektoren überprüfen und Tippfehler beim programmgesteuerten Einrichten von target-action verhindern. Also sollte man wirklich verwenden:
let rightButtonItem = UIBarButtonItem.init(
title: "Title",
style: .Done,
target: self,
action: #selector(rightButtonAction(sender:))
)
Sie können der viewDidLoad
-Methode Ihres B-Controllers den folgenden Code hinzufügen.
UIBarButtonItem *rightButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Title"
style:UIBarButtonItemStyleDone
target:self
action:@selector(rightButtonAction:)];
self.navigationItem.rightBarButtonItem = rightButtonItem;
- (void)viewDidLoad {
[super viewDidLoad];
UIBarButtonItem *rightBtn = [[UIBarButtonItem alloc]initWithTitle:@"Right Button" style:UIBarButtonItemStyleDone target:self action:@selector(rightBtnClick)];
self.navigationItem.rightBarButtonItem = rightBtn;
}
-(void)rightBtnClick{
// code for right Button
}
Schneller Code zum Hinzufügen eines Navigationselementes:
Methode 1 (Wenn Sie ein Bar-Button-Systemelement verwenden möchten)
navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addTapped))
Methode 2 (Wenn Sie der Schaltfläche einen eigenen Titel geben möchten)
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Add", style: .plain, target: self, action: #selector(addTapped))
Ab iOS 5 können Sie auf jeder Seite der Navigationsleiste mehr als eine Schaltfläche hinzufügen. Etwas wie das:
let add = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addTapped))
let display = UIBarButtonItem(title: "Display", style: .plain, target: self, action: #selector(playTapped))
navigationItem.rightBarButtonItems = [add, display]
Fügen Sie den folgenden Code in der viewDidLoad-Methode hinzu
UIBarButtonItem *flipButton = [[UIBarButtonItem alloc]
initWithTitle:@"Flip"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(flipView:)];
self.navigationItem.rightBarButtonItem = flipButton;
Dadurch wird auf der rechten Seite eine Schaltfläche mit dem Titel Flip hinzugefügt, die die Methode aufruft:
-(IBAction)flipView