iPad マスター/詳細プロジェクト テンプレートを使用しており、アプリを最初に実行UILabels
したときに一部を更新しようとしています。detailViewController
これが私のコードです:
(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
メソッドから、テーブルビューの 1 行目をデフォルトとして選択して呼び出されます。
if (![self.tableView indexPathForSelectedRow])
{
[self.tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:0];
[self.detailViewController setObject:[self.sortedObjects objectAtIndex:0]];
}
コードを実行するdetailLabel
と、変更されず、(null)NSLog
と表示されます。self.detailLabel
後でボタン クリックから 'refresh' が呼び出された場合、detailLabel
null ではなく、正しく更新されます。detailLabel
が作成され、(null) でないことを確認するにはどうすればよいですか?