Hallo zusammen,
wenn ich einen UISearchController unter iOS 11 in der Navigationsleiste anzeige, versteckt sich dieser nicht beim Blättern ... und das macht mich wahnsinnig
Ich stelle gerade eine alte iOS-App auf UISplitView um und möchte dabei in der MasterView eine Suchleiste einblenden. In der Vergangenheit habe ich dies mit einer UISearchBar selber programmiert, nun möchte ich einen UISearchController nutzen:
Im
Alles anzeigen
Starte ich die App, ist die Suchleiste verborgen und wird beim Wischen nach unten angezeigt. So weit, so gut. Wische ich nun wieder nach oben (die UITableView "bounce-t"), verschwindet die Suchleiste kurz hinter der Navigation-Bar, um beim Heben des Fingers wieder aufzupoppen. Spannend ist, dass dieser Effekt nur auftritt, wenn die Einträge der UITableView keine komplette Seite füllen. Sobald ich "richtig" nach oben blättern kann (und die UITableView nicht bounce-t), funktioniert es.
Ich bin mir nicht bewusst, in dem Controller irgendwo mit contentOffset o. ä. zu hantieren und die App basiert auf dem Template von Apple (aber natürlich mit Anpassungen z. B. der UITableView). Wenn ich eine Beispiel-App auf Basis des gleichen Templates erstelle und den o. g. Code einfüge, funktioniert es wie erwartet.
Klar, dass der Fehler irgendwo in meinen Anpassungen liegen muss, aber was könnte es sein bzw. wie könnte ich sinnvoll debuggen? Mir fällt echt nichts mehr ein
Mattes
wenn ich einen UISearchController unter iOS 11 in der Navigationsleiste anzeige, versteckt sich dieser nicht beim Blättern ... und das macht mich wahnsinnig
Ich stelle gerade eine alte iOS-App auf UISplitView um und möchte dabei in der MasterView eine Suchleiste einblenden. In der Vergangenheit habe ich dies mit einer UISearchBar selber programmiert, nun möchte ich einen UISearchController nutzen:
Im
viewDidLoad
des MasterViewControllers (einer UITableView) wird der UISearchController instanziert und dem Navigation-Item zugewiesen:Quellcode
- self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
- self.searchController.searchResultsUpdater = self;
- self.searchController.dimsBackgroundDuringPresentation = NO;
- self.searchController.searchBar.placeholder = @"Search";
- self.searchController.searchBar.delegate = self;
- if (@available(iOS 11.0, *))
- {
- self.navigationItem.searchController = self.searchController;
- self.navigationItem.hidesSearchBarWhenScrolling = YES;
- }
Ich bin mir nicht bewusst, in dem Controller irgendwo mit contentOffset o. ä. zu hantieren und die App basiert auf dem Template von Apple (aber natürlich mit Anpassungen z. B. der UITableView). Wenn ich eine Beispiel-App auf Basis des gleichen Templates erstelle und den o. g. Code einfüge, funktioniert es wie erwartet.
Klar, dass der Fehler irgendwo in meinen Anpassungen liegen muss, aber was könnte es sein bzw. wie könnte ich sinnvoll debuggen? Mir fällt echt nichts mehr ein
Mattes
Diese Seite bleibt aus technischen Gründen unbedruckt.