0

快速提问。我在一个视图控制器中放置了一个按钮,在另一个视图控制器中放置了一个 UITableView(它已经填充了包含标题、描述...等的自定义单元格)。我希望我的用户能够按下按钮,并让 UITableView 显示过滤结果。

代码会是什么样子?如何使此按钮使用指定的条件过滤我的 UITableView?

这是按钮的 viewcontroller.m 文件中的代码:

- (IBAction)buttonpressed:(UIButton *)sender {

        NSLog(@"Button Pushed!");



}

这是我的 TableViewController.m 文件的样子:

- (int)numberOfSectionsInTableView: (UITableView *)tableview

{

    return 1;

}

- (int)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{

    if (tableView == self.searchDisplayController.searchResultsTableView) {
        return [searchResults count];




    } else {
        return [Strains count];

    }



}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *strainTableIdentifier = @"StrainTableCell";

    StrainTableCell *cell = (StrainTableCell *)[tableView dequeueReusableCellWithIdentifier:strainTableIdentifier];
    if (cell == nil) 


        cell = [[StrainTableCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:strainTableIdentifier];



        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"StrainTableCell" owner:self options:nil];
        cell = [nib objectAtIndex:0];

    if (tableView == self.searchDisplayController.searchResultsTableView) {


        cell.titleLabel.text = [[searchResults objectAtIndex:indexPath.row] objectForKey:@"Title"];
        cell.descriptionLabel.text = [[searchResults objectAtIndex:indexPath.row] objectForKey:@"Description"];
        cell.ratingLabel.text = [[searchResults objectAtIndex:indexPath.row] objectForKey:@"Rating"];


        NSLog(@"%@", searchResults);
    } else {
        cell.titleLabel.text = [[Strains objectAtIndex:indexPath.row] objectForKey:@"Title"];
         cell.descriptionLabel.text = [[Strains objectAtIndex:indexPath.row] objectForKey:@"Description"];
         cell.ratingLabel.text = [[Strains objectAtIndex:indexPath.row] objectForKey:@"Rating"];



    }


    {

    } 


return cell;

}
4

1 回答 1

0

当您在 buttonpressed 方法中创建 Table View Controller 时(如果您使用情节提要,那么您会将按钮连接到第二个视图控制器,然后在 prepareForSegue 中执行此操作,否则只需在 buttonpressed 和 push 中创建视图控制器的实例它到导航控制器)。

将属性或实例变量添加到表视图控制器,指定要应用的过滤器并在创建表视图控制器时设置它,然后在 viewDidLoad 和/或 cellForRowAtIndexPath 中进行过滤

于 2013-05-22T01:14:44.890 回答