0

行が選択されているときに、ポップバックして行のテキストを表形式で表示UITableviewControllerしたいと考えています。rootViewController現在起こっていることはviewWillAppear、関数が呼び出される前に通常のView Controllerが呼び出されているpopToRootViewControllerため、通常のView Controllerに移動するとテキストが表示されないことです。私も使ってみviewDidAppearましたがダメでした。これが私が試したコードです:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
    NSLog(@"row was selected");
    user[@"school"] = [[_objects objectAtIndex:indexPath.row] objectForKey:@"title"];
    [[PFUser currentUser] saveInBackground];
    [self.navigationController popToRootViewControllerAnimated:YES];
}

そして、通常のView Controllerで:

- (void)viewWillAppear:(BOOL)animated
{
    NSLog(@"will appear ran");
    PFUser *currentUser = [PFUser currentUser];
    self.userSchoolLabel.text = currentUser[@"school"];
}

コンソールに表示されるのは、出力されることです

"will appear ran"

そして「行が選択されました」

この問題を解決するにはどうすればよいですか。また、popToRootViewController別のView Controllerのボタンをタッチしてメソッドを呼び出すと、正常に動作します。問題は行の選択にあります。理由はわかりません。

事前にご協力いただきありがとうございます。ほんとうにありがとう。

4

1 に答える 1

0

イベント処理は、Delegate メソッドの一部です。行が表示されているため、データソースは正しいようです。したがって、テーブルビューのデリゲートを正しく設定していない可能性があります。nib を使用している場合は、テーブルビューのデリゲートを接続するか、コードを使用してテーブルビューを描画している場合は、単に _yourtable.delegate =self; を確認してください。設定されているかどうか。

別の理由として、tableview セルに uiview がある場合、rowselection イベントが取り除かれる可能性があります。

また、テーブルビューで編集を有効に設定している場合、didSelectRowAtIndex: メソッドが呼び出されない場合があります。詳細については、こちらを参照してください。

于 2014-05-22T04:49:37.413 に答える