Modal segue benötigt 2 Klicks statt 1

9

Mein UITableView benötigt 2 Klicks, um die Detailseite der ausgewählten Zelle anzuzeigen: eine für die Auswahl und eine weitere für die Detailansicht. Ich möchte, dass ein Klick die Detailansicht der angeklickten Zelle direkt anzeigt.

Ich verwende einen modalen Übergang mit dieser Methode in meinem UITableViewManager.m:

%Vor%

Ich kann nicht mit einem Push-Übergang arbeiten, weil ich keinen Navigations-Controller habe (und nicht wirklich will).

Ich habe im TableView-Attribut-Inspektor nachgesehen, aber keine relevanten Informationen dazu gefunden. Ich habe Auswahl "Einzelauswahl" ausgewählt und "Auswahl bei Berührung anzeigen" aktiviert. Ich weiß nicht, ob das möglich ist und ob es ist, wo ich hinschauen soll.

Danke für Ihre Hilfe.

EDIT 1: Wenn ich die beiden Methoden schreibe, funktioniert es immer noch nicht (benötigt 2 Klicks) und ich habe ein neues Warnungsprotokoll:

  

"Warnung: Versuch, TCDetailController: 0xa27b900 an zu zeigen   TCRootViewController: 0xa24f050 während eine Präsentation läuft! "

%Vor%

EDIT 2: Ich weiß nicht warum, aber manchmal funktioniert es perfekt und braucht keinen zweiten Klick auf die Tabellenansicht. Kann nicht herausfinden: /

Lösung unter

    
Tulleb 20.10.2013, 22:06
quelle

5 Antworten

14

Ich habe herausgefunden, was das Problem war!

Ich habe einen Parameter im Storyboard geändert, den ich nicht haben sollte. Ich wollte, dass die Auswahlzelle keine Hintergrund-Hervorhebungsfarbe anzeigt, wenn ich darauf klicke, aber es scheint, dass die Segue darauf basiert, um anständig zu funktionieren.

WIE FIX: Wählen Sie im Storyboard im Navigator Ihre Tabellenansichtszelle aus, und wählen Sie unter "Auswahl" (Attribute Inspector) nicht die Option "Keine". "Blau", "Grau" oder "Standard" scheint gut zu funktionieren.

    
Tulleb 23.10.2013, 13:41
quelle
11

Ich hatte bereits das Auswahlattribut auf "Standard" gesetzt und es gab immer noch das Zwei-Klick-Problem. Dieser Vorschlag wies jedoch auf eine verwandte Lösung hin. Rufen Sie in didSelectRowAtIndexPath auf:

%Vor%

(Ich benutze Swift, offensichtlich.)

    
Scott D. Strader 03.08.2015 15:04
quelle
1

Eine Lösung, die für mich funktioniert (XCode 9.2) und scheinbar einfach ist, aber trotzdem None für die Auswahl zulässt:

Wie @Tulleb sagt, verwende im Storyboard alles außer None für die Table View Cell "Auswahl", aber setze es dann auf .none im Code.

Zum Beispiel, so ...

%Vor%     
tom10 29.03.2018 04:31
quelle
0

Verwenden Sie

%Vor%

statt

%Vor%

Dann kannst du irgendeinen Code schreiben und er funktioniert beim ersten Klick.

    
emreoktem 21.10.2013 00:11
quelle
0

Zu Ihrer Information Bis jetzt gibt es das Problem mit Xcode 8.2.1 und Swift 3.x auch für meine angepasste Unterklasse UICollectionViewCell (aber ich nehme an, dass die Unterklasse nicht benötigt wird, um dieses Problem zu reproduzieren. Ich habe keine Zeit, diesen Fall zu testen.).

Ich fasse das Problem folgendermaßen zusammen: Durch Antippen der zuvor ausgewählten Zelle wird das Antippen-Ereignis zur Abwahl verwendet, anstatt die Auswahlübergänge auszulösen.

Also ist die Lösung, entweder die Auswahlübergänge nicht zu verwenden, sondern programmatisch auszulösende Segmente zu verwenden oder die Zelle selbst abzuwählen, wenn ein Auswahlüberblick ausgelöst wird.

    
Kenyth 19.01.2017 10:40
quelle