wie Info-Taste auf UINavigationBar auf iphone erstellen
-
12-09-2019 - |
Frage
Ich habe viele von Anwendungen gesehen, die eine Info-Button (den Buchstaben „i“ mit einem Kreis um ihn herum) hat auf der UINavigationBar. Wie kann ich diese Art von Taste?
Lösung
Die vorherige Antwort war in der Nähe, nicht ganz zusammenstellen. Hier ist, was Sie wirklich wollen:
// Info button
UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[infoButton addTarget:self action:@selector(showInfoView:) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:infoButton];
Andere Tipps
Es gibt Speicherverlust in der Antwort oben. Sie sollten „Autofreigabe“ zu vermeiden, es zu benutzen. Ich habe versucht, die Antwort zu bearbeiten, aber ich war nicht erfolgreich, so weit.
// Info button
UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[infoButton addTarget:self action:@selector(showInfoView:) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:infoButton] autorelease];
Dies ist der richtige Weg, es zu tun.
Es sollte möglich sein, eine „Info Light“ Typ-Taste, um die navigationItem der View-Controller hinzuzufügen, die die UINavigationController momentan angezeigt wird. So etwas wie dies in Ihrem View-Controller-Code gehen könnte:
- (void) viewDidLoad {
UIButton * info = [UIButton buttonWithType:UIButtonTypeInfoLight];
// set your button's target and selector for whatever action here.
self.navigationItem.rightBarButtonItem.customView = info;
}
Sie können auch Ihr aktuelles Bar-Taste Elements des Ziel und Wähler für die Info-Taste verwenden.
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[infoButton addTarget:self.barButtonItem.target action:self.barButtonItem.action forControlEvents:UIControlEventTouchUpInside];
self.barButtonItem.customView = infoButton;
Auf diese Weise alle Aktionen oder segues zu Ihrem Bar-Taste Elemente gekoppelt werden Ihre Info-Taste übertragen werden.