Iphone UITextView没有';t在segue之后更新文本

Iphone UITextView没有';t在segue之后更新文本,iphone,objective-c,ios5,Iphone,Objective C,Ios5,我正在尝试在一个segue之后更新UITextView的text属性,这个segue是在点击表视图的一行之后发生的 这是我的密码 MasterViewController.m - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ if ([[segue identifier] isEqualToString:@"4 Choices"]) { NSLog(@"prepareForSegue is cal

我正在尝试在一个segue之后更新UITextView的text属性,这个segue是在点击表视图的一行之后发生的

这是我的密码

MasterViewController.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

if ([[segue identifier] isEqualToString:@"4 Choices"]) {
    NSLog(@"prepareForSegue is called");
    NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
    NSManagedObject *selectedObject = [[self fetchedResultsController] objectAtIndexPath:indexPath];
    NSString *questionContent = [[selectedObject valueForKey:@"questionContent"]description];
    self.questionContent = questionContent;
    [segue.destinationViewController setTextViewWith:self.questionContent];
}
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"didSelectRowAtIndexPath is called");
NSManagedObject *selectedObject = [[self fetchedResultsController] objectAtIndexPath:indexPath];
NSNumber *questionID = [selectedObject valueForKey:@"qID"];
int i = [questionID intValue];
if (i == 1) {
    [self performSegueWithIdentifier:@"4 Choices" sender:self];
}
else
{
    [self performSegueWithIdentifier:@"5 Choices" sender:self];
}
}
-(void)setTextViewWith:(NSString *)aText
{
self.questionText = aText;
NSLog(@"setTextViewWith is called");

}

- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.questionView setText:self.questionText];
NSLog(@"viewWillAppear is called");
}
DetailViewController.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

if ([[segue identifier] isEqualToString:@"4 Choices"]) {
    NSLog(@"prepareForSegue is called");
    NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
    NSManagedObject *selectedObject = [[self fetchedResultsController] objectAtIndexPath:indexPath];
    NSString *questionContent = [[selectedObject valueForKey:@"questionContent"]description];
    self.questionContent = questionContent;
    [segue.destinationViewController setTextViewWith:self.questionContent];
}
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"didSelectRowAtIndexPath is called");
NSManagedObject *selectedObject = [[self fetchedResultsController] objectAtIndexPath:indexPath];
NSNumber *questionID = [selectedObject valueForKey:@"qID"];
int i = [questionID intValue];
if (i == 1) {
    [self performSegueWithIdentifier:@"4 Choices" sender:self];
}
else
{
    [self performSegueWithIdentifier:@"5 Choices" sender:self];
}
}
-(void)setTextViewWith:(NSString *)aText
{
self.questionText = aText;
NSLog(@"setTextViewWith is called");

}

- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.questionView setText:self.questionText];
NSLog(@"viewWillAppear is called");
}
编辑1:更改代码以将文本设置为“ViewWillDisplay” 编辑2:添加“DidSelectRowatineXpath”

注意:该段从MasterViewController指向DetailViewController(而不是从 tableViewCell)


感谢您的帮助:)

文本视图可能无法在PrepareForsgue点加载。我刚刚开始使用故事板,发现我必须在目标视图控制器上设置字符串属性,然后更新viewDidLoad或ViewWillDisplay中的UI组件

文本视图可能无法在prepareforsgue点加载。我刚刚开始使用故事板,发现我必须在目标视图控制器上设置字符串属性,然后更新viewDidLoad或ViewWillDisplay中的UI组件

我尝试在“viewWillAppear”中设置文本,但无效。按照我的建议在目标视图控制器上创建新的字符串属性之后?您在prepareForSegue中设置了字符串,然后在ViewWillDisplay中将textfield文本设置为字符串。我已经在destinationViewController中设置了string属性。我会在一分钟内编辑帖子。所有的日志消息都出来了吗?是的,所有的方法都被调用了。我将更新“didSelectRowAtIndexPath”以获取您的信息。我尝试在“ViewWillExample”中设置文本,但无效。按照我的建议在目标视图控制器上创建新的字符串属性后?您在prepareForSegue中设置了字符串,然后在ViewWillDisplay中将textfield文本设置为字符串。我已经在destinationViewController中设置了string属性。我会在一分钟内编辑帖子。所有的日志消息都出来了吗?是的,所有的方法都被调用了。我将更新“didSelectRowAtIndexPath”以获取您的信息。