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

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

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:)

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

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

执行代理方法,

你可能感兴趣的:(Objective-C,objective-c,开发语言,macos)