【发布时间】:2011-11-01 07:39:06
【问题描述】:
我采用了一个基于标准 iPad SplitViewerController 模板的项目,并实现了递归向下导航到任意数量的级别,如下所示:
首先,我创建了一个新的视图控制器(名为 NavItemController),我将其弹出到 RootViewController 的 didSelectRowAtIndexPath 方法中的控制器堆栈中,如下所示:
NavItemController *navItemController = [[NavItemController alloc] initWithNibName:@"NavItemController" bundle:[NSBundle mainBundle]];
navItemController.title = catalogue.name;
[[self navigationController] pushViewController:navItemController animated:YES];
然后,我使用这个视图控制器进行所有上下导航我的树结构(因此 RootViewController 现在仅用于显示导航的初始根级别,即没有父项的项目)。
一切都很好。
现在,当我在 NavItemController 中选择一个项目时,我正在尝试更新详细视图 (detailViewDescriptionLabel) 上的标签。为此,我首先在我的 NavItemController 中添加了一个出口:
@property (nonatomic, strong) IBOutlet DetailViewController *detailViewController;
并在 InterfaceBuilder 中配置它,方法是将库中的视图控制器添加到 Objects 列表中,将其类更改为 DetailViewController 并连接我在 File's Owner 下找到的插座。
此时,如果我单步执行我的代码,我发现它正确地将我的详细视图中的 detailItem 设置为在我的 NavController 中选择的对象 - 并且它似乎正确地将 detailDescriptionLabel.text 值设置为来自此 detailItem 的值。但是,这并没有反映在 UI 中(如果我从 RootViewController 执行此操作,它仍然有效)。
我猜我没有正确连接某些东西或在某处错过了一步 - 我(显然)对 iOS 很陌生 - 任何指针都将不胜感激。
【问题讨论】:
标签: ios ipad uisplitviewcontroller