Es gibt noch eine weitere Frage zu SO, aber das hat nichts damit zu tun, weil ich denke, dass das mit einer Beta-Version von iOS 11 zu tun hat.
Ich habe diese 2 UIButton
s, die in einem UIView
gruppiert sind. Diese UIView wird in ein UIBarButtonItem
eingefügt und das Ganze wird mit dem Interface Builder als Left Bar Button Items
festgelegt.
Jede Schaltfläche zeigt nach dem Anklicken ein Popover an, ausgelöst durch das Storyboard.
Ich teste das auf einem iPad 3 mit iOS 9 und Xcode 8. Das funktioniert wunderbar.
Jetzt habe ich beschlossen, das auf meinem iPad Pro 9.7 zu testen, auf dem iOS 11 Beta 7 läuft. Ich benutze Xcode 9 Beta 6. Wenn ich dies auf dem iPad Pro ausführe, sind alle Schaltflächen in der Navigationsleiste leer. Sie reagieren nicht auf Klicks, jetzt probiere ich dieselbe Xcode 9 Beta 6 und starte die App auf dem iPad 3 mit iOS 9 und noch einmal, alles funktioniert wunderbar.
Ich kompiliere für iOS 9.1.
Tasten heben nicht einmal hervor, um das Tippen zu bestätigen, wie dies bei iOS 9 der Fall ist.
Gibt es ein Problem mit iOS 11 Beta 7 und Bar-Schaltflächen?
Irgendwelche Ideen?
Ich habe das Problem entdeckt! Erstaunlicher Fehler!
Dies ist die Übung. Ich habe dem linken Navigationselement zwei Schaltflächen hinzugefügt:
UIButtons
innerhalb dieser Ansicht hinzu. Dies wurde für iOS 9 kompiliert und funktioniert auf einem Gerät mit iOS 10 und niedriger, aber nicht mit iOS 11.
Der "richtige" Weg, dies zu tun, ist dies
UIButton
auf das linke Navigationselement. UIButton
auf das linke Navigationselement. Sie werden sehen, dass iOS dies erlaubt und beide Buttons unter "Navigationselemente" verwalten.
Dies funktioniert bei allen iOS-Versionen, die ich von 9 bis 11 getestet habe.
Ich habe festgestellt, dass derselbe Code, der mit XCode 8 erstellt wurde, auf ios10-11 gut funktioniert, aber wenn ich mit XCode 9 baue, reagieren UIBarButtonItem mit einer benutzerdefinierten Ansicht nicht auf Klicks.
sieht aus, dass das Problem auftritt, weil die Navigationsleiste von ios 11 Auto-Layout verwendet, anstatt mit Frames zu arbeiten. Die Schaltflächen auf dem Bildschirm sehen gut aus, scheinen aber technisch gesehen nicht im Sichtbereich zu sein.
Mein Problem besteht darin, der benutzerdefinierten Ansicht eine automatische Layouteinschränkung hinzuzufügen.
%Vor%Nach dieser benutzerdefinierten Schaltfläche für die rechte Leiste werden Klicks erfolgreich empfangen.
Tags und Links ios11 uibutton uibarbuttonitem xcode9beta6