如何将数据传递给子视图?
SubviewViewController.h:
@property (weak, nonatomic) IBOutlet UILabel *lblName;
TableViewController.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];
}
答案 0 :(得分:1)
SVC.lblName.text = @"TEST";
无法正常工作,因为标签尚未初始化。原因是具有标签的视图在[self.view addSubview:SVC.view];
之前没有加载到内存中,因此lblName
将是nil
...所以如何解决这个问题?
将此行SVC.lblName.text = @"TEST";
移到[self.view addSubview:SVC.view];
下方将解决属性初始化问题,因为当SCV.view
作为子视图添加时,lblName
将被分配属性/出口。
希望如果其他所有内容都在您的代码中正确配对,这将对您有用。