【通讯录案例-添加联系人功能 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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!