次の方法で埋め込まれた UICollectionViewController に検索バーを追加したいと思います: UItabbarController > UINavigationbarController > UICollectionViewController > SearchBar (!) このビューでは、検索バーが NavigationBar を置き換えます。
同じ設計で、UITableViewController を使用して上記をテストすると、検索バーが正常に表示されます (プログラムとストーリーボードの両方で)。
問題は、StoryBoard フレームワークを使用すると、UICollectionViewController に検索バーを追加できないことです。ビューの真ん中にあるだけで、一番上に移動する方法がわかりません。さらに、常に UICollectionview の下に表示されるため、表示されません。
したがって、プログラムで別のルートを取ります。
-(void)viewWillAppear:(BOOL)animated{
self.searchBarTop = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
[self.searchBarTop setPlaceholder:@"Enter your command here"];
self.searchDC = [[UISearchDisplayController alloc]initWithSearchBar:self.searchBarTop contentsController:self];
self.searchBarTop.delegate = self;
[[self navigationController] setNavigationBarHidden:NO animated:animated];
[self.navigationController.navigationBar addSubview:self.searchBarTop];
}
これで、検索バーが正常に表示されます。しかし、残念なことに、テキストを入力すると、ビューの上に消えます-おそらく、基になるnavBarがそうしているためです-(理由はわかりません...)
検索バーが UITableViewController で問題ない理由と、UICollectionViewController にとってなぜそれほど苦痛なのか、正確にはわかりません。そうは言っても、検索バー/ナビゲーションバーが消える理由と、それを修正する方法についての手がかりは誰にもありますか?
どんな解決策でも大歓迎です..
ありがとう !-A