我有核心数据中所有实体的列表视图。

轻按时,它应该将所选实体的值压入将要压入导航堆栈的视图的文本字段中,但不会这样做。

令我感到困惑和烦恼的是,如果我使用NSLog,它会记录日志,但是我使用相同的代码,并且不会将相同的信息输出到textFields中。标题也会根据需要进行更改,这让我很困惑文本字段为何不显示。我想念什么吗?我是否错误地访问了运动员实体?

这是我的代码段(注意Athlete.h是动态创建的核心数据属性,AllAthletes.htable viewAthleteDetail.h是要推送的详细信息视图)

allathletes.h

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    Athlete *athlete = (Athlete *)[athleteArray objectAtIndex:indexPath.row];
    AthleteDetail *athleteDetail= [self.storyboard instantiateViewControllerWithIdentifier:@"showAthlete"];
    athleteDetail.firstDetailTextField.text = athlete.first;
    athleteDetail.title = athlete.full;
    NSLog(@"Full Name: %@",athlete.full);
    NSLog(@"Parent's Full Name: %@", athlete.pfull);
    NSLog(@"Number: %@",athlete.phone);
    NSString *firstNameText = athleteDetail.firstDetailTextField.text;
    firstNameText = [NSString stringWithFormat:@"%@",athlete.first];
    [self.navigationController pushViewController:athleteDetail animated:YES];
    }

最佳答案

当您为AthleteDetail AthleteDetail *athleteDetail= [self.storyboard instantiateViewControllerWithIdentifier:@"showAthlete"];创建一个对象时,它不会初始化被查看的控件。

获得所需行为的最佳方法是在AthleteDetail类中创建一个名为“ athleteName”的属性。

@property(nonatomic, strong) NSString * athleteName


现在代替athleteDetail.firstDetailTextField.text = athlete.first;
写下面的代码

athleteDetail.athleteName = athlete.first;


现在在AthleteDetail类的viewDidLoad中,将运动者名称分配给您的文本字段

firstDetailTextField.text = _athleteName;


我希望这对你有用.. :)

关于ios - 将文本添加到非事件的ViewController的文本字段中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18056952/

10-11 00:36