UISearchview响应动作 - TableSearch示例iphone

时间:2011-09-14 17:53:06

标签: iphone uitableview uisearchbar uisearchdisplaycontroller

我想修改tableSearch示例代码,以便tableview没有nib。由于它已经是tableviewcontroller的子类,我可以这样调用tableview:

MainViewController *mainViewController = [[MainViewController alloc] initWithStyle:UITableViewStylePlain];//NibName:@"MainView" bundle:nil];

没有笔尖,我想手动添加搜索栏。我在下面尝试过:

    UISearchBar* searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0,10, 320, 41)];
[searchBar setFrame:CGRectMake(0,10, 320, 41)];
searchBar.delegate = self;
searchBar.tintColor = [UIColor redColor];
[searchBar sizeToFit];
self.tableView.tableHeaderView  = searchBar;

搜索栏确实显示正常。现在我希望这个搜索栏的搜索操作指向我在代码中已有的方法,即searchDisplayController委托方法。 无论如何,我可以将self.searchDisplayController的搜索栏属性指向我的自定义搜索栏,以便他们执行相同的操作吗?提前谢谢......

2 个答案:

答案 0 :(得分:1)

您必须使用initWithSearchBar:contentsViewController的{​​{1}}方法。这样,您的自定义搜索栏将与控制器关联。此外,您还必须在此方法中设置UISearchDisplayController

答案 1 :(得分:0)

嗯......这是我的一个VC的代码。还设置UISearchBarDelegate,UISearchDisplayDelegate

_listContainer = [[UITableView alloc] init];
_listContainer.delegate = self;
_listContainer.dataSource = self;
_listContainer.separatorStyle = UITableViewCellSelectionStyleNone;
_data = [[NSArray alloc] init];

然后

_searchBar = [[NL_CustomSearchBar alloc] initWithFrame:CGRectMake(4.0f, 0, 150, 46)];
 _searchBar.delegate = self;
 _listContainer.tableHeaderView = _searchBar;