如何调用委托对象?
问题描述:
我的协议:如何调用委托对象?
@protocol ElectricalSystemEngineDelegate
-(void)didRequestMainMenu:(id)sender;
@end
我为了处理我rootView控制器内模态视图控制器的设计解雇该协议。我rootView控制器采用这个协议,并声明如下:
#import "ElectricalSystemEngineDelegate.h"
@interface RootViewController: UIViewController <ElectricalSystemEngineDelegate>
//other ivars & methods including instantiation of my modalViewController.
我用一个彻头彻尾的现成:
-(IBAction)displayElectricalViewController
-to显示模态控制器......工作正常。我,但是,困惑于如何与这个协议来处理控制器解雇的执行进一步进行..
//The implementation of my root view controller.
-(void)didRequestMainMenu:(id)sender {
[self dismissModalViewControllerAnimated: YES];
}
很显然,我正确地使用规定的方法实现的协议。我希望该方法在调用时关闭视图控制器。我也希望通过点击modalViewController中的后退按钮来调用它。
正如苹果文档所言:“在某些情况下,对象可能愿意通知其他对象其行为,以便他们可以采取任何可能需要的抵押措施。”我的目标是让我的ElecticalViewController通知它的父级(RootViewController)它应该被解散。应该通过点击后退按钮来触发解雇。对象如何完成此通知?
答
您需要将id <ElectricalSystemEngineDelegate> delegate
属性添加到您的ElectricalViewController。
然后,您需要在创建ElectricalViewController后将自己(RootViewController)分配给该委托。
然后,在处置ElectricalViewController时调用[delegate didRequestMainMenu]。
然后你需要为你的RootViewController创建一个方法didRequestMainMenu。
像梦一样工作。那是我错过的唯一难题。谢谢!! – 2010-02-22 21:16:36