Как называется объект делегата? - PullRequest
0 голосов
/ 22 февраля 2010

мой протокол:

@protocol ElectricalSystemEngineDelegate
-(void)didRequestMainMenu:(id)sender;
@end

Я разработал этот протокол для того, чтобы обрабатывать отклонение модального View Controller внутри моего контроллера rootView. Мой контроллер rootView принимает этот протокол и объявляется следующим образом:

#import "ElectricalSystemEngineDelegate.h"

@interface RootViewController: UIViewController <ElectricalSystemEngineDelegate>
//other ivars & methods including instantiation of my modalViewController.

Я использую "из коробки":

-(IBAction)displayElectricalViewController

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

//The implementation of my root view controller.
-(void)didRequestMainMenu:(id)sender {
    [self dismissModalViewControllerAnimated: YES];
}

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

Как утверждают яблоки, «в некоторых случаях объект может захотеть уведомить другие объекты о своих действиях, чтобы они могли принять любые побочные меры». Моя цель состоит в том, чтобы мой ElecticalViewController уведомил своего родителя (RootViewController) о том, что он должен быть отклонен. Это увольнение должно быть вызвано нажатием кнопки назад. Как объект выполняет это уведомление?

1 Ответ

2 голосов
/ 22 февраля 2010

Вам необходимо добавить свойство id <ElectricalSystemEngineDelegate> delegate в свой ElectricalViewController.

Затем вам нужно назначить self (RootViewController) этому делегату после того, как вы создали ElectricalViewController.

Затем вы вызываете [делегат didRequestMainMenu] при удалении ElectricalViewController.

Затем вам нужно создать метод didRequestMainMenu для вашего RootViewController.

...