2016-04-09 12 views
0

Ich habe ein ViewController mit einem UISearchController innen (mit einer Tabellenansicht drauf) Ich habe diese Zeile auf didSelectRowAtIndexPath: hinzugefügt:.`dismissViewControllerAnimated: Abschluss:“ entlässt Tastatur und VC nicht

[self dismissViewControllerAnimated:YES completion:nil]; 

Aus irgendeinem Grunde , die viewController nicht entlassen und stattdessen wird, wird die Tastatur entlassen (die searchController inaktiv wird), zu entlassen, die viewController ich eine Zelle auf dem Tisch erneut auswählen (und dann didSelectRowAtIndexPath: genannt zweimal wird).

Irgendeine Idee, warum es geschieht G?

Vielen Dank!

+1

Versuch 'presentingViewController .dismissViewControllerAnimated (true, Fertigstellung: nil)' –

Antwort

0

Dies passiert wahrscheinlich, weil UISearchController von UIViewController erbt und daher der Controller in didSelectRow entlassen wird, ist eigentlich der Suchcontroller.

Vielleicht einfach versuchen, zweimal entlassen, so dass es die Suchsteuerung von der eigenen View-Controller gefolgt entfernt:

[self dismissViewControllerAnimated:YES completion:nil]; 
[self dismissViewControllerAnimated:YES completion:nil]; 
+0

Es funktioniert, aber dann die Animation ist wirklich schnell und es sieht schlecht aus, wie kann ich eine Verzögerung zwischen der ersten Entlassung auf die zweite setzen? –

+0

Sie können als nächstes die zweite Entlassung innerhalb des Completion-Blocks der ersten, aber ich bin nicht ganz mit diesem Ansatz vertraut. –

+0

Könnten Sie vielleicht versuchen, nur die zweite Entlassung zu animieren? –

0

Versuchen Sie zunächst, die Tastatur zu verlassen und dann vc zu schließen.