如何以编程方式解雇UISearchBar?

时间:2015-09-03 17:39:40

标签: ios objective-c uisearchcontroller

我正在使用UISearchControllerUITableView。选中UITableView中的单元格后,我会在整个屏幕上方添加一个黑色UIView,并在其上添加一些子视图。 UISearchController处于非活动状态时,它可以正常工作。但是当它处于活动状态时,UISearchBar显示在我的黑色视图上方。

self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
self.searchController.searchResultsUpdater = self;
self.searchController.dimsBackgroundDuringPresentation = NO;
self.searchController.searchBar.scopeButtonTitles = [NSArray array];
self.searchController.searchBar.delegate = self;
self.searchController.hidesNavigationBarDuringPresentation = NO;
self.searchController.searchBar.backgroundImage = [self imageWithColor:[MySingleton shared].barTintColor];
[self.searchController.searchBar sizeToFit];
[self.view addSubview:self.searchController.searchBar];
myView = [[UIView alloc] initWithFrame:CGRectMake(0, -64, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];
    myView.backgroundColor = [UIColor blackColor];
    myView.layer.opacity = 0.9;
[self.view addSubview:myView];

在放置视图之前,我已尝试将其设为非活动状态

self.searchController.active = NO;

并将myView添加到导航控制器的视图

[self.navigationController.view addSubview:myView];

仍然没有运气。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

试试这个

[self.searchController setActive:NO];

这是SearchController的一个属性,根据Apple文档,应该做的诀窍

答案 1 :(得分:0)

有一种方法允许您在名为- insertSubview:aboveSubview:的视图层次结构中的另一个视图上方插入视图。以下是如何使用它:

if (self.searchController.searchBar)
    [self.view insertSubview:myView aboveSubview:self.searchController.searchBar];
else
    [self.view addSubview:myView];