我的协议:
@protocol ElectricalSystemEngineDelegate
-(void)didRequestMainMenu:(id)sender;
@end
我设计了这个协议,以便处理我的rootView控制器中的模态View Controller的解雇。我的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)它应该被解雇。应该通过点击后退按钮触发解雇。该对象如何完成此通知?
答案 0 :(得分:2)
您需要将id <ElectricalSystemEngineDelegate> delegate
属性添加到您的ElectricalViewController。
然后,您需要在创建ElectricalViewController后将self(RootViewController)分配给该委托。
然后在部署ElectricalViewController时调用[delegate didRequestMainMenu]。
然后你需要为你的RootViewController创建一个方法didRequestMainMenu。