UIBarButtonItem kann nicht auf iOS 11 Beta 7 geklickt werden?

8

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?

    
SpaceDog 24.08.2017, 06:13
quelle

5 Antworten

3

Ich habe das Problem entdeckt! Erstaunlicher Fehler!

Dies ist die Übung. Ich habe dem linken Navigationselement zwei Schaltflächen hinzugefügt:

  1. Erstellen Sie eine Ansicht
  2. Fügen Sie zwei UIButtons innerhalb dieser Ansicht hinzu.
  3. fügen Sie diese Ansicht dem linken Navigationselement 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

  1. Ziehen Sie UIButton auf das linke Navigationselement.
  2. Ziehen Sie ein weiteres 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.

    
SpaceDog 30.08.2017, 20:55
quelle
11

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.

    
andreylanadelrey 20.09.2017 16:50
quelle
2

lassen Sie tippen:

%Vor%     
Ahmad 28.09.2017 05:23
quelle
2

Das funktioniert, indem ich diese Methode zu UIBarButtonItem hinzufüge:

%Vor%     
Josher 27.10.2017 19:09
quelle
0

Ich hatte das gleiche Problem beim Upgrade auf iOS 11.

Die Größe der UIView mit den Schaltflächen war 0x0.

Ich habe die Höhe x Breite des UIView auf dem Interface Builder festgelegt und danach funktioniert es.

    
Quan Vu 23.10.2017 23:01
quelle