0

如何将数据传递给子视图?


子视图控制器.h:

@property (weak, nonatomic) IBOutlet UILabel *lblName;

表视图控制器.m:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Load SubView    
    SubviewViewController *SVC = [self.storyboard instantiateViewControllerWithIdentifier:@"SubviewViewController"];

    SVC.lblName.text = @"TEST"; // It's not working properly.

    SVC.view.frame = CGRectMake(20, 60, SVC.view.frame.size.width, SVC.view.frame.size.height);
    [self addChildViewController: SVC];
    [SVC didMoveToParentViewController:self];
    [self.view addSubview:SVC.view];
}
4

1 回答 1

1

SVC.lblName.text = @"TEST";将无法工作,因为标签尚未初始化。原因是具有标签的视图没有加载到内存中[self.view addSubview:SVC.view];,因此lblName将是nil......那么如何解决这个问题?

将这一行移到SVC.lblName.text = @"TEST";下面[self.view addSubview:SVC.view];将解决属性初始化问题,因为当SCV.view添加为子视图时,lblName将被分配属性/插座。

如果您的代码中的其他所有内容都正确配对,希望这对您有用。

于 2013-05-14T18:42:01.470 回答