Я извиняюсь за отсутствие конкретики в строке темы, но я не совсем уверен, как классифицировать мой вопрос. Это вопрос высокого уровня, но я чувствую, что люди должны сталкиваться с этим постоянно, и я хотел бы знать, как они с этим справляются. Я относительный новичок в объектном C и объектно-ориентированном программировании, поэтому простите меня, если это совершенно очевидно для многих из вас.
Вот оно. У меня есть приложение какао, которое создает как главное окно, так и главный контроллер приложения в mainMenu.xib. Мой объект myMainAppController содержит другой windowController, скажем, mySubWindowController, который инициируется из собственного отдельного файла пера, как показано ниже. Допустим, у subWindow есть два элемента, возможно, NSTextfield и NSButton. Так...
myMainAppController.h
@interface
@property (strong) MySubWindowContorller *mySubWindowController;
........ so forth
MyMainAppController.m
@implementation
......
self.mySubWindowController = [MySubWindowController alloc] initWithWindowNibName:
@"mySubWindow"];
etc...
MySubWindowController.h
@ interface
IBOutlet (weak) NSTextfield *myTextField;
IBOutlet (weak) NSButton *myButton;
....
Пока все хорошо, я думаю. Довольно стандартные вещи, не так ли? Итак, суть моего вопроса. В этой структуре моего класса, как я могу получить любую информацию или действия, которые происходят в подокне, обратно в мой mainAppController и данные из mainAppController в подокно? Кажется, я не могу сделать IBOutlet или IBAction из текстового поля/кнопки обратно в myMainAppController.h, поэтому, кроме использования KVO, как myMainAppController получит какую-либо информацию от mySubWindowController? Что, если есть действие, реализованное в подокне, для которого требуются элементы myMainWindowController? Я не могу отправить сообщение о действии обратно в myMainAppController, а mySubWindowController не имеет доступа к другим элементам содержащего его класса. Я полагаю, что мог бы объявить и определить мягкие указатели необходимых элементов в myMainAppController на mySubWindowController, но это почему-то похоже на нарушение «объектно-ориентированности» и локализации.
Что вы делаете в такой ситуации, когда главное окно и подокно должны согласовывать данные и логику? Я упускаю что-то совершенно очевидное из-за своей неопытности или это довольно распространенная ситуация? За относительно короткое время, которое я работаю над своим приложением, я уже сталкивался с этим несколько раз. Пытаюсь понять, как другие справляются с этим.
Заранее спасибо за любые мысли.