您的位置:首页 > 其它

对代理模式中代理方法实现和调用的简单了解

2015-09-18 09:59 423 查看
     这个问题是我在多界面传值的时候遇到的,第一个界面可以直接向第二个界面传值,但是,后面一个界面不能直接向前一个界面传值,这个时候想要实现第二个界面向第一个传值就需要建立一个协议,借助这个协议实现这个功能。

首先我们要明白,第二个界面需要实现这个功能,所以第二个界面需要借助协议方法,因此第二个界面是委托人,所以

第二个界面.delegate =
self;

在第一个界面实现第二个界面的初始化,同时制定代理,这个时候就要在下面实现代理方法,注意,是实现,不是调用,这个时候就是重点了,在哪里制定代理,就要在哪里实现代理方法,在第一个界面的VC中实现的代理,所以,也要在第一个界面中实现代理方法。

-(void)nextvc

{

    vc = [[myViewController
alloc]
init];

    vc.str =
self.textfiled.text;

    vc.delegate =
self;//指定代理

    

    vc.modalPresentationStyle =
UIModalTransitionStyleFlipHorizontal;

    [self
presentViewController:vc
animated:NO
completion:nil];

}

//实现代理方法

-(void)chuanzhi:(NSString *)str

{

    self.textfiled.text = str;

}

在第二个界面我们就可以调用代理方法了,注意,是调用 不是实现

-(void)back

{

[self.delegate
chuanzhi:self.textfiled.text];//这个是调用,不是实现,一定要搞清楚实现和调用的区别,只实现一次,可以多次调用

}

注:在第一个界面初始化第二个界面,并且指定了代理,所以也要在第一个界面实现代理方法,这样就可以在第二个界面调用代理方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: