我试图弄清楚如何在 NSViewController 中重新加载数据。
我有一个这样的项目,左侧栏是 NSOutlineView(由我的 outlineViewController 控制),右侧拆分视图是自定义视图:
所以我有这个“profile.xib”文件,其中包含“person”对象的一些信息。我已将 profile.xib 文件所有者设置为我的视图控制器 ProfileViewController,它是 NSViewController 的子类。
因此,每次当用户从侧边栏中选择不同的配置文件时,我的 outlineviewController 都会调用:
if (!_profileViewController)
_profileViewController = [[ProfileViewController alloc] initWithNibName:@"profile" bundle:nil];
[_profileViewController setProfile: item]; //item is an instance of the profile object
NSView *view = [_profileViewController view];
view.frame = _mainContentView.bounds;
[view setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
[_mainContentView addSubview:view]; //add profile's view to the right hand side split view
(代码取自苹果的sidebardemo)
由于用户可能会从侧边栏中选择不同的配置文件,因此我需要在 ProfileViewController 中重新加载数据。但是我不知道哪个方法应该包含我的重新加载数据代码。如果我将“重新加载数据代码”放在 awakefromnib 中,它将被调用一次,viewload 也只会调用一次。由于内存问题,我不想在选择配置文件时重新分配和重新初始化 _profileViewController 一切。
我不能在这里使用绑定,因为某些字段的显示非常复杂。
那么我将如何重新加载数据?