Code: Select all
class DocumentBrowserViewController: UIDocumentBrowserViewController, UIDocumentBrowserViewControllerDelegate
{
override func viewDidLoad()
{
super.viewDidLoad()
let button = UIBarButtonItem(
image: UIImage(...),
style: .plain,
target: self,
action: #selector(...)
)
additionalTrailingNavigationBarButtonItems.append(button)
}
}
< /code>
Dies funktioniert einwandfrei, außer wenn sich die App im Split-View-Modus auf einem Tablet befindet. In diesem Fall wechselt die Schaltfläche zu einem von UidocumentBrowServiewController
Code: Select all
button.title = "Title"
< /code>
Oder ich könnte dies anstelle eines der oben genannten Code tun: < /p>
let button = UIBarButtonItem(
title: "Title",
image: UIImage(...),
target: self,
action: #selector(...)
)
< /code>
Beide fügen den Titel erfolgreich hinzu, aber dann wird kein Symbol angezeigt. Es wird immer der Texttitel
Code: Select all
let buttonAction = UIAction(
title: "Title",
image: UIImage(...)
)
{
action in
self.doSomething()
}
let button = UIBarButtonItem(
image: UIImage(...),
primaryAction: buttonAction
)
pro @Hangarrashs Vorschlag unten habe ich versucht, die UIAction wie oben zu erstellen und das UibarbuttonItem mit nur einer Primäraktion und ohne Bild zu erstellen . Dies führt zu einem Symbolleistenelement und einem Menüelement, das nur noch ein Symbol Text ist. a uibutton mit nur einer Primäraktion und dann der Schaltfläche Einstellung. Ich habe einen UIAction mit nur einem Titel und einem uibutton mit einem Bild und einer Primäraktion ausprobiert. /p>
Mein ideales Verhalten für die Schaltfläche lautet: < /p>
Wenn es sich in der Symbolleiste befindet, ist es nur ein Symbol. < /li>
Wenn es auf das Menü verschoben wird, verfügt es über ein führendes Etikett und ein nachfolgendes Symbol, wie die anderen Menüelemente. < /li>
< /ul>
Wie kann ich das tun? das Menü. Und unabhängig davon, was ich noch versuche, einstellen Sie die Schaltfläche.>