У меня есть класс AppController, который выглядит как просмотр/управление в моем приложении обычным способом.Objective C связь между классами
Там кнопка на главном окне моего приложения в IB, который вызывает AppController для создания экземпляра нового контроллера окна (accountPanelController) и показать, что среднее окно:
- (IBAction) showAccountPanel:(id) sender
{
//Is accountController nil?
if (!accountPanelController) {
accountPanelController = [[AccountPanelController alloc] init];
}
[accountPanelController showWindow:self];
}
Когда это новое окно сделано с, я хочу отправить данные, собранные от моего вторичного контроллера окна к способу в AppController:
- (IBAction) close: (id) sender
{
NSLog(@"Close detected");
[AppController addAccount:0];
[self close];
}
Однако, когда я пытаюсь вызвать метод addAccount в AppController от нового контроллера окна, я получаю «„AppController“не может ответитьна предупреждение «+ addAccount».
Это похоже на то, что AppController является классом, а не экземпляром объекта, поскольку метод в AppController вызывается -addAccount (а не + addAccount, о котором сообщается в предупреждении). Действительно, если я изменяю имя целевого метода на + addAccount вместо -addAccount, предупреждение не появляется (но программа вылетает при выполнении).
Учитывая, что я фактически не создаю экземпляр AppController (думаю, это происходит как-то во время инициирования NIB), есть ли у кого-нибудь идеи, как я могу отправить данные методу AppController? Уведомления кажутся излишними ...
Большое спасибо.
Большое спасибо. Я прочитал все ссылки. Корень в том, что AppController - это класс, который я не создавал, но который IBuilder указывает на (IBAction).Поэтому у меня нет способа указать экземпляр, создаваемый AppController при его создании. Уведомления работа. Есть ли более простой способ? Даже Hillegass использует уведомления в своей главе на панелях. Люди должны получать данные из двухстороннего окна во многих приложениях, чтобы это было распространено? Я не знаком с общими экземплярами и внимательно посмотрел на какой-то документ. Знаете ли вы о том, что может помочь? Как ниже, я попробовал [self addAccount] не повезло. Еще раз спасибо. –
Возможно, вы можете использовать [NSApplication sharedApplication], который является общим экземпляром делегата приложения. Но я думаю, что использование уведомлений - это то, что нужно сделать здесь. –
У вас нет уведомлений, работающих сегодня. Благодарю. –