【发布时间】:2012-10-26 09:46:36
【问题描述】:
我在Master中有很多行,第一次点击一行,内容显示在Details中。我回去,选择一个新行,或同一行,它会在Details中显示“Detail view content goes here”。我疯狂地追踪,使用 NSLog 以防它是某种事件重新排序,在视图和 UIControl 实例中使用 setNeedsDisplay。一切都按正确的顺序跟踪正常,但没有显示新内容。 NSLog 显示新内容在控件中,只是不显示。欢迎任何帮助,这让我发疯了。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"showDetail"]) {
NSIndexPath *indexPath = [[self tableView] indexPathForSelectedRow];
NSObject *object = [[[self objects] objectAtIndex:[indexPath section]] objectAtIndex:[indexPath row]];
[[segue destinationViewController] setDetailItem:object];
}
}
【问题讨论】:
-
didSelectRowAtIndexPath:方法中的代码似乎有问题。 “Detail view content goes here”来自 XCode 模板中的 DetailViewController。一般来说,尤其是在这种情况下,您应该提供您的代码。至少形成上述方法。 -
将
didSelectRowAtIndexPath:的代码添加到您的问题中 - 否则这纯属猜测。 -
如果您使用情节提要,等效的方法是 prepareForSegue 方法。
-
发现问题了。我正在通过向接收者发送消息进行更新。我已经包含了设置接收器的代码,但假设它在设置后不会更改。事实证明,每次都会创建新的详细视图,因此之前的链接将无效。
标签: ios objective-c rendering master-detail