什么时候创建接口构建器IBOutlet对象?



我正在使用iPad主/详细项目模板,当应用程序首次运行时,我试图更新detailViewController中的一些UILabels

这是我的代码:

 (void)setObject:(id)newObject
{
    if (_object != newObject) {
        [_object release];
        _object = [newObject retain];
        [self configureView];
    }
    if (self.masterPopoverController != nil) {
        [self.masterPopoverController dismissPopoverAnimated:YES];
    }
}
- (void)configureView
{
    [self updateDetails];
}
- (void) updateDetails
{
    NSLog(@"Details = %@", self.details);
    NSLog (@"detailLabel %@", self.detailLabel);
    self.detailLabel.text = [self.details objectForKey:@"aKey"];
}
- (IBAction)refresh:(UIBarButtonItem *)sender {
    [self updateDetails];
}

setEvent是从主视图控制器的viewDidLoad方法中调用的,作为默认选择它的tableview的第一行。

if (![self.tableView indexPathForSelectedRow])
{
    [self.tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:0];
    [self.detailViewController setObject:[self.sortedObjects objectAtIndex:0]];
}

当我运行代码时,detailLabel没有改变,NSLogself.detailLabel是(null)。如果'刷新'以后从按钮单击detailLabel不为空并正确更新。我怎样才能做到这一点,以确保detailLabel已创建,而不是(null)?

IBOutlet对象将在该对象(详细视图,而不是主视图)的viewDidLoad()时创建。

在详细视图控制器的viewdidLoad()方法中调用[self updateDetails];来避免这个问题

最新更新