0

簡単な質問です。あるView Controllerにボタンを配置し、別のView Controllerに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 を作成する場合 (ストーリーボードを使用している場合は、ボタンを 2 番目の View Controller に接続してから prepareForSegue でこれを行います。それ以外の場合は、ボタンを押してプッシュするだけで、View Controller のインスタンスを作成します。ナビゲーションコントローラーに)。

適用するフィルターを指定するプロパティまたはインスタンス変数をテーブル ビュー コントローラーに追加し、テーブル ビュー コントローラーの作成時にそれを設定してから、viewDidLoad および/または cellForRowAtIndexPath でフィルター処理を行います。

于 2013-05-22T01:14:44.890 に答える