2011-12-17 2 views
0

안녕하세요 UITableView이 있는데 배열에 데이터가 있습니다. search 기능도 있습니다. 이것은 메뉴 유형입니다. 다른 접시가 있고 사용자가 어떤 요리를 검색 할 수 있습니다. 왼쪽에는 텍스트 필드가 있고 그 텍스트는 0입니다. 사용자가 몇 가지 요리를 검색 한 다음 다른 숫자를 입력하면 해당 입력을 올바른 위치에 저장하는 방법 그 당시 그 세포 index은 원본과 다를 것입니다. 이 그림을 볼 수 있습니다 내 UITableView enter image description hereUITableView에서 버튼의 제목을 설정하는 방법은 무엇입니까?

나는 이것이 논리의 문제임을 알고 있지만 여기에 붙어 있습니다.

+0

이 질문에 대한 적절한 도움을 받으려면 관련 코드를 게시해야합니다. – PengOne

+0

내가 제대로 이해한다면 배열을 설정하고 데이터를 다시로드하여 단추의 올바른 값을 설정해야합니다. –

답변

0

다음보십시오 :

[button setTitle:@"title" forState:UIControlStateNormal];

+0

문제는 일부 사용자가 뭔가를 검색 한 다음 해당 인덱스가 변경 될 때 문제가되는 것입니다. – Mashhadi

0
  1. 처음있는 NSMutableArray을에서

.H 파일

있는 NSMutableArray * searchDataArray;

지금의 속성을 선언하고하는 .m 파일에

2.In 당신의 -(void)viewDidLoad ALLOC 검색 배열을 합성하고 그것을 유지합니다.

  1. 이 코드에서

    - (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{ 
    [sBar resignFirstResponder]; 
         searching = YES; //A boolean for searching condition 
    [searchData removeAllObjects]; 
    NSString *searchText = searchBar.text; 
    
    // record is a mutable array containing the cell text 
    int count = [records count]; 
    for (int i=0; i<count; i++) { 
    for(int j=0;j<6;j++){ 
    
        //finding the cell strings for checking 
        recordsstr = [NSString stringWithFormat:@"%@",[records objectAtIndex:i]; 
        //Matching string of table and search string 
    
    
        //case sensitivity checking 
        NSString *mainString = [NSString stringWithFormat:@"%@",[recordsstr lowercaseString]]; 
        NSString *searchString = [NSString stringWithFormat:@"%@",[searchText lowercaseString]]; 
        NSLog(@"main String: %@ and search string: %@ ",mainString,searchString); 
        NSLog(@"main string lenght: %d and search String lenght: %d",[mainString length],[searchString length]); 
        if([mainString isEqualToString:searchString] || [mainString rangeOfString:searchString].location != NSNotFound){ 
         [searchData addObject:[NSNumber numberWithInt:i]]; 
         NSLog(@"indext after matching: %d",i); 
         NSLog(@"number of date in searchdata array after matching: %d",[searchData count]); 
         break; 
        } 
        recordsstr = nil; 
    } 
    } 
    

에 난 셀 텍스트를 일치하고 그래서 .. 텍스트를 검색 [당신이 검색 창을 설정하고 검색 대리자를 호출 할 수 있다는 생각입니다]. 셀 인덱스 배열을 취하는 셀 텍스트를 찾은 후. 검색이 완료되면

이제 다음 당신의 tableview

if(searching == YES){ 
for(int i = 0; i<[searchData count]; i++){ 
    if(indexPath.row is equal to [searchData objectAtIndex:i]) 
    { 
    //change your text field 
    } 
} 
else{ 
    //Without searching code 
    } 

그것이 우리 한테 주어진 문제 나 노크 도움이 될 수 있음을 [tableview reloadData]

지금의 cellForRowAtIndex 검사를 다시로드합니다.

관련 문제