在视图中,我有两个搜索栏,它们都需要使用单独的searchBarTextDidBeginEditing方法。但是,每当我尝试创建一个单独的方法时,显示为重复。两种方法都在呼唤它。
我很确定我的方法不对。
searchBarTextDidBeginEditing:nearSearch searchBarTextDidBeginEditing:whatSearch
nearSearch和whatSearch是两个不同的搜索栏。
我尝试了nearSearch:searchBarTextDidBeginEditing但不确定这是否正确。
答案 0 :(得分:1)
委托方法返回对调用它的搜索栏对象的引用,其原因正是您所描述的问题,基本上您应该引用搜索栏,并比较知道哪个搜索栏正在调用方法并采取相应行动..
说你已经定义了
UISearchBar *searchBarOne
UISearchBar *searchBarTwo
然后在您的委托方法中,例如
- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar
{
if(searchBar==searchBarOne)
{
//handle search bar one
}
else if(searchBar==searchBarTwo)
{
//handle search bar two
}
}
另一个解决方案是为搜索栏设置不同的标签,并比较标签,作为问题的评论。
希望有所帮助
丹尼尔