我的搜索条形码中的项目存在问题。
在应用程序内部,我在运行时向表视图添加了一个搜索栏。搜索工作只有2次!
如果我尝试第三次搜索,搜索栏不允许我输入任何输入,并将我返回到应用程序的主页。
// staffArr Array to store the staff objects
// tableData store the data that will display in table
- (void)viewDidLoad {
[super viewDidLoad];
tableData = [[NSMutableArray alloc] init];
[tableData addObjectsFromArray:staffArr];
self.disableViewOverlay = [[UIView alloc]
initWithFrame:CGRectMake(0.0f,44.0f,320.0f,416.0f)];
self.disableViewOverlay.backgroundColor=[UIColor blackColor];
self.disableViewOverlay.alpha = 0;
}
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
[self searchBar:searchBar activate:YES];
}
-(void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
searchBar.text=@"";
[self searchBar:searchBar activate:NO];
}
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
[self.tableData removeAllObjects];
if([searchBar.text isEqualToString:@""]|| searchBar.text==nil){
[staffTAB reloadData];
return;}
for(NSInteger i=0;i<staffArr.count;i++)
{
staff *sta = (staff *)[self.staffArr objectAtIndex:i];
NSString *name =sta.staff_name;
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];
NSRange r = [name rangeOfString:searchBar.text];
if(r.location != NSNotFound)
{
if(r.location== 0)// checking only the start of the names.
{
[tableData addObject:sta];
}
}
[pool release];
}
[self searchBar:searchBar activate:NO];
[self.staffTAB reloadData];
}
- (void)searchBar:(UISearchBar *)searchBar activate:(BOOL) active
{
self.staffTAB.allowsSelection = !active;
self.staffTAB.scrollEnabled = !active;
if (!active)
{
[disableViewOverlay removeFromSuperview];
[searchBar resignFirstResponder];
}
else
{
self.disableViewOverlay.alpha = 0;
[self.view addSubview:self.disableViewOverlay];
[UIView beginAnimations:@"FadeIn" context:nil];
[UIView setAnimationDuration:0.5];
self.disableViewOverlay.alpha = 0.6;
[UIView commitAnimations];
NSIndexPath *selected = [self.staffTAB indexPathForSelectedRow];
if (selected) {
[self.staffTAB deselectRowAtIndexPath:selected animated:NO];
}
}
[searchBar setShowsCancelButton:active animated:YES];
}
提前致谢