Как установить заголовок кнопки в UITableView? - PullRequest
0 голосов
/ 17 декабря 2011

HI У меня есть UITableView, и у меня есть данные в моем массиве, у меня есть search функциональность также здесь.это вещь типа меню.Существуют разные блюда, и пользователь может искать любое блюдо, с левой стороны здесь есть текстовое поле и его текст равен 0, когда пользователь ищет какое-то блюдо, затем вводит в него какую-то другую цифру, а затем сохраняет этот ввод в нужном месте,тогда его ячейка index будет отличаться от оригинальной.Вы можете видеть эту фотографию моего UITableView enter image description here

Я знаю, что это проблема логики, но, пожалуйста, помогите мне, я застрял здесь.

Ответы [ 2 ]

0 голосов
/ 19 декабря 2011
  1. Сначала возьмите NSMutableArray

.h file

NSMutableArray * searchDataArray;

Теперь объявите его свойство и синтезируйте его в вашем .m файле

2.В вашем -(void)viewDidLoad выделите поисковый массив и сохраните его.

  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 reloadData]

Сейчас в cellForRowAtIndex проверьте, что

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
   }

Может быть, это поможет вам. Если возникнут какие-либо проблемы, постучите ко мне.

0 голосов
/ 18 декабря 2011

Попробуйте следующее:

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

...