2012-02-28 28 views
3

私はiOS 5.0でUISearchBarに関するバグを見つけたと思うし、それはスコープバーだ。私は最初にXIBで有効になっているスコープバーを表示しています。UISearchBarスコープバーiOS 5.0バグ?

実行時には、スコープバーが正しく表示されます。ただし、検索テキストフィールドにクリックしてキャンセルボタンをクリックすると、スコープバーが画面から削除されます。画面領域は引き続き表示されます。スクリーンショットを参照してください。

UISearchBar still shows scope bar view area 誰かがこの問題を回避する方法について考えている場合は、教えてください。

ありがとうございました。ケイ。

+0

についての詳細を読むことができます。 searchBar.showsScopeBarを設定すると視覚的な効果はありません。 showsScopeBarゲッターはYESを返しますが、スコープバーは表示されません。 – Dustin

答えて

0

期待していることや起こりたいことを明確にしてください。いくつかのデリゲートメソッドがあります。ここで私は私のSearchBarViewControllerで行うカップルの事です:

まず、私はVCがデリゲートなります(私の検索ボックスがモーダル)閉じる

- (void)viewDidLoad { 
    searchBar.delegate = self; 
} 

とビューコントローラを提示して戻る:

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar { 
    [[self presentingViewController] dismissModalViewControllerAnimated:YES]; 
} 

フィルタリング:

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString { 
    [self filterContentForSearchText:searchString scope: 
    [[self.searchDisplayController.searchBar scopeButtonTitles] objectAtIndex:[self.searchDisplayController.searchBar selectedScopeButtonIndex]]]; 

    // Return YES to cause the search result table view to be reloaded. 
    return YES; 
} 

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchScope:(NSInteger)searchOption { 
    [self filterContentForSearchText:[self.searchDisplayController.searchBar text] scope: 
    [[self.searchDisplayController.searchBar scopeButtonTitles] objectAtIndex:searchOption]]; 

    // Return YES to cause the search result table view to be reloaded. 
    return YES; 
} 

幸運、

Damien

+0

ご返信ありがとうございます。私は常にスコープバーを見えるようにしたいと思います。私はさらにUISearchBarのサブクラスを実装しました... – Kay

+0

searchBarCancelClickedをオーバーライドしましたか?デリゲートで何もしていないことを確認しますか?また、UISearchDisplayControllerを使用していますか?私はUISearchBarをサブクラス化したことを理解していますが、コントローラーはどうですか?私はIBで提供されているUISearchDisplayControllerなしでUISearchBarを使用して問題が発生したことを覚えています。私は自分のコードをテストしただけです。キャンセルをクリックすると、tableviewがクリアされます。あなたは何をしたいのですか? –

+0

はい私はUISearchDisplayControllerを使用しています。また、searchBarCancelClickedを実装しました。結果はありません! :-( – Kay

4

'searchBarShouldEndEditing'デリゲートを実装して、検索バーが存在するときにスコープバーを再度有効にしてみてください。

- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar 
{ 
    self.searchBar.showsScopeBar = YES; 
    [self.searchBar sizeToFit]; 
    self.tableView.tableHeaderView = self.searchBar; 
    return YES; 
} 

あなたは、私は同じ問題を抱えているこのソリューションhere

関連する問題