【通讯录案例-添加联系人功能 Objective-C语言】

发布时间:2024年01月19日

一、添加联系人的功能,继续来做这个啊

1.在这个“添加联系人”界面儿,

通知

姓名:来一个“111”,

电话:来一个“2222”,

当我点击“添加”按钮以后,

我应该把B里边儿的内容传给A,

所以,这个里边儿,我的代理方法,这个协议,应该写在哪儿,

写在“添加联系人”的控制器,

还是写在这个”1的联系人“控制器里边儿,

通知

写在“添加联系人”的控制器,对吧,

因为从B控制器传数据到A控制器,我们拿不到那个prepareForSegue:方法,所以怎么办,用代理吧,

然后,接下来,我们就来写代码儿,

通知

把这个代码儿,备份一下啊,

选中这个“08-通讯录-添加联系人界面“,

通知

command + C、command + V、

通知

把这个“08-通讯录-搭建添加联系人界面副本“,改成”09-通讯录-添加联系人功能“,

通知

后面加一个(逆传),

通知

”09-通讯录-添加联系人功能“,改成”09-通讯录-添加联系人功能(逆传)“,

好,然后呢,这个项目,

2.接下来,我们来做这个核心功能,“逆传”,

通知

好,然后呢,接下来啊,我们说,我们现在呢,要把这个“添加联系人”的这个数据,传给“联系人列表”,

好,也就是说,我现在,应该在添加联系人的这个控制器里边儿,去写协议,

好,然后呢,在这个里边儿啊,AddViewController.h

通知

2.我们先来写一个协议,

我在这个#import 下面儿,写一个@pr

通知

@pro

通知

@protocol - Objective-C Protocol Definition,

选择下面这个,按回车,

通知

选择下面这个类名儿,AddViewController,

通知

选中这个类名儿,AddViewController,command + C、

粘贴到上面儿这个协议名儿,protocol name,这里,

通知

后面加一个Delegate,

等于协议名儿,就是AddViewControllerDelegate,

通知

然后,下边儿这个methods,

写一个@optional,

通知

@optional,可选的方法啊,

通知

- (void)

首先呢,是没有返回值的,第一个参数,是它自己,

选中下面这个AddViewController,command + C、

通知

到上面儿这个方法名儿这里,command + V、粘贴过来、

通知

把第一个字母改成小写,addViewController,方法名儿第一个字母要小写,

通知

好,然后呢,再来一个冒号,一对小括号,

通知

在小括号里,再来写一个(AddViewController *)

通知

后面再写一个AddViewController,

通知

- (void)addViewController:(AddViewController *)AddViewController,

第一个字母,改成小写,

通知

- (void)addViewController:(AddViewController *)addViewController

然后呢,with一个

通知

我们这里边儿,要传一个“姓名”、和一个“电话“、

所以呢,这个里边儿,我们withName:(NSString *)name

通知

然后,andNumber:传什么,就在后面儿直接写就行了,

通知

andNumber:(NSString *)number

通知

那么这个方法,就搞定了,

这个有个报错儿,没有引入头文件,对吧,

通知

@class AddViewController;

通知

引入一下头文件,@class AddViewController;

因为我们这个方法里面的参数,是要用到AddViewController这个类的啊,在“点儿”h里面,还没有引入这个类,所以我们导入一下头文件,

2)好,然后呢,再来一个代理的属性,delegate,

通知

来一个XWeak,

通知
通知

输入两个参数,@property(nonatomic,weak)type *name;

1)type:来一个id< AddViewControllerDelegate >

通知

2)name:来一个delegate,

通知

3)好,然后呢,是不是delegate属性就有了,有了以后呢,我要考虑一下,在哪儿去用啊,

来到AddViewController“点儿”m文件里边儿,

通知

在哪儿去执行,

好,当我们点击“添加”按钮的时候,addButton,

通知

当我点击“添加”按钮的时候,应该把这个值传过去,

所以呢,我们一定是要监听这个“添加”按钮的点击事件,

// 监听添加按钮的点击事件

通知

监听一下添加按钮的点击事件

通知

[self.addButton addTarget:self action:@selector(addClick) forControlEvents:UIControlEventTuochUpInside];

4.然后呢,在这个里边儿,去写一个addClick的方法,

通知

- (void)addClick{

}

写个注释,// 添加按钮的点击事件

通知

然后呢,当我们点击“添加”的时候呢,首先

1)首先:我们要pop,没错儿吧,

[self.navigationController popViewControllerAnimated:YES];

通知

好,这个pop应该有了,写个注释,// 返回上一个控制器(联系人列表),

通知

2)然后呢,这个pop有了,有了以后呢,我们要在这个里边儿,执行代理方法,

首先呢,要去判断,代理方法是不是能够相应,

写个注释,// 判断代理方法是不是能够相应

// 如果可以响应,那么执行代理方法

写一个if

通知

然后,来一个这个,self.delegate

通知

self.delegate respondsToSelector:(SEL)

通知

self.delegate respondsToSelector:@selector(addViewController:withName:withNumber:)

通知

好,判断一下,如果代理方法可以响应的话,

那我就应该去,// 如果可以响应 那么执行代理方法

通知

执行代理方法,

文章来源:https://blog.csdn.net/madoca/article/details/135649212
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。