0

tablePeople1番目のViewControllerでUITableViewを構成するNSArrayがありますPeopleControllerpersonsName2番目のViewControllerにUILabelがあり、TableViewの各行PeopleDetailsControllerの内容で更新しcell.textLabel.textます。私はこの方法を持っていますが、機能していません:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    ((PeopleController *)segue.destinationViewController).delegate=self;
    if ([[segue identifier] isEqualToString:@"toPeopleArticle"]) {

        NSIndexPath *indexPath = (NSIndexPath *)sender;

        PeopleDetailsController *mdvc = segue.destinationViewController;
        mdvc.personsName.text = [self.tablePeople objectAtIndex: indexPath.row];
    }
}

セルが選択されたときにも次のコードがあります。

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self performSegueWithIdentifier:@"toPeopleArticle" sender:indexPath];
}

PeopleDetailsControllerこれはモーダルビューでPeopleControllerあり、ナビゲーションビューコントローラーであることに注意する必要があります。

編集:2番目のVCのUILabelのテキストは更新されていないだけで、同じままです。これが全体の問題です。

4

1 に答える 1

1

以下を変更します

PeopleDetailsController *mdvc = segue.destinationViewController;
mdvc.personsName.text = [self.tablePeople objectAtIndex: indexPath.row];

PeopleDetailsController *mdvc = segue.destinationViewController;
mdvc.personsNameString = [self.tablePeople objectAtIndex: indexPath.row];

ここで、personsNameStringは、PeopleDetailsControllerのNSString型のプロパティです。

PeopleDetailsControllerのviewDidLoadまたはviewWillAppear関数で、ラベルの値をプロパティの値に設定します。

mdvc.personsName.text = personsNameString;
于 2012-06-01T19:41:37.140 に答える