Ich arbeite an einer Anwendung, die eine Ansichtshierarchie hat, die Apple Musik oder iPod aps sehr ähnlich ist. Es hat einen UITabBarController, der UINavigationControllers enthält und UITableViews präsentiert, die schließlich zu einem UIViewController führen, der hidesBottomBarWhenPushed
auf YES
in seinem designierten Initialisierer setzt (um die UITabBar auszublenden). Die vorherigen UITableViews haben alle eine UISearchBar in ihrem tableHeaderView
, die ich in viewWillAppear:
aus dem Sichtfeld verschiebe.hidesBottomBarWhenPushed und eine aufdringliche UISearchBar auf kurzen UITableViews
Die UISearch bleibt normalerweise verborgen, bis sie nach unten gezogen wird, außer wenn sie aus der UIView in eine kurze UITableView zurückgeht. Es bleibt durch die UITableView-Methoden viewWillAppear:
und viewDidAppear:
und die UIView-Methoden viewWillDisappear:
und viewDidDisappear:
versteckt und schließlich von selbst aus. Wenn ich in der UIView self.hidesBottomBarWhenPushed = YES;
auskommentiere, bleibt die UISearchBar verborgen, wenn sie aus dieser Ansicht heraus zurückgeht.
Was verursacht die UITableView die UISearchBar zu enthüllen, nachdem ich es ausgeblendet habe? Gibt es in der Ansichtshierarchie eine höhere delegate-Methode, mit der ich verhindern kann, dass sie auftritt?
aktualisieren Ich habe ein einfaches Projekt mit der minimalen Menge an Code erstellt benötigt, um das Problem zu reproduzieren. Laden Sie PushySearchBar.zip herunter. (Sorry, ich hatte eine mod_rewrite-Regel, die Downloads von Domänen von Drittanbietern verhindert. Ich habe Stack Overflow zur Whitelist hinzugefügt. Der Download sollte jetzt funktionieren.)
Werfen Sie einen Blick auf meine Antwort hier https://stackoverflow.com/a/45956456/2774520 –