点击时UISearchBar消失

时间:2013-11-21 09:03:43

标签: ios uitableview delegates uisearchbar

我有一个UITableView,其数据源和委托不是由放置它的视图控制器处理,而是由另一个名为AbstractInviteFriendsDataSourceDelegate的类处理。

我在UISearchBar中添加UISearchDisplayController UITableView并手动(不使用故事板界面)将其委托和dataSource设置为处理UITableView的dataSource和委托的控制器。

- (id)init
{
    self = [super init];
    if (self) {
        friendsArray = [FriendsToInvite new];
        UISearchBar *searchBar = [self.delegate theSearchBar];
        searchBar.delegate = self;
        UISearchDisplayController *searchDisplay = [self.delegate theSearchDisplayController];
        searchDisplay.delegate = self;
        searchDisplay.searchResultsDataSource = self;
        searchDisplay.searchResultsDelegate = self;
    }
    return self;
}

我认为这没关系,因为当我实现其中一个搜索栏的委托方法时,它被正确调用。

但是现在,当我点击搜索栏时,它会向左滑动以为取消按钮腾出空间然后它就会消失。我没有为UISearchBar委托实现任何方法,也没有为UISearchDisplayController委托和dataSource实现任何方法。

我尝试实现searchBarShouldBeginEditing只是为了查看它是否在搜索栏消失之前被调用,是的,它被调用但是在此方法返回后,搜索栏消失了。

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
{
    return YES;
}

修改 我已经解决了这个问题,似乎我从故事板中得到了searchContentController个问题。我将它设置回包含表视图的视图控制器,现在没问题。

1 个答案:

答案 0 :(得分:2)

我也遇到了同样的问题,并通过在表格视图中添加搜索栏来解决这个问题。