2013-04-03 2 views
0

Я пытаюсь выяснить, как перезагрузить данные в NSViewController.Как перезагрузить данные в NSViewController?

У меня есть проект, как это, левая сторона бара NSOutlineView (который управляется моей outlineViewController) и право Разделить обычай вид: screenshot http://oi47.tinypic.com/25tyy2u.jpg

Так что у меня этот файл «profile.xib», который содержит некоторую информацию о объекте «человек». Я установил владельца файла 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 все, когда выбран профиль, из-за проблемы с памятью.

Я не могу использовать привязку здесь, так как некоторые поля довольно сложны для отображения.

так как я собираюсь перезагрузить данные?

ответ

1

Как насчет того, чтобы переместить вашу команду «загрузить информацию о профиле в вид» из -awakeFromNib в свой собственный метод -reloadData и вызвать ее при вызове -setProfile:? Вы делаете это, вызывая его непосредственно из представления таблицы или переопределяя -setProfile: чтобы сразу заметить профиль, а затем вызвать -reloadData.

 Смежные вопросы

  • Нет связанных вопросов^_^