1
我正在使用iPad主/明細項目模板,並且在第一次運行應用程序時,我試圖更新detailViewController
中的UILabels
。什麼時候創建界面生成器IBOutlet對象
這裏是我的代碼:
(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
不改變代碼和NSLog
說self.detailLabel
是(空)。如果稍後從按鈕調用'刷新',則單擊detailLabel
不爲空並更新正確。我怎樣才能確保detailLabel
已經創建並且不是(null)?
試圖避免它,因爲它不確定當調用viewDidLoad od detail view controller時self.details是否將爲空。 self.sortedObjects從另一個線程的URL填充,setObject在完成時調用。我認爲最好的方法是從多個地方調用updateDetails並檢查self.detailLabel是否爲(null)。 – TijuanaKez 2013-03-12 06:14:34