为什么UITextFieldDelegate代理不跑?

实现功能为:点击cell输入框,输入字符串,然后要获取保存已输入的字符串。这是一个tableview列表共显示有11个cell,点击输入填写金额cell,这个cell里面有一个UITextField控件,于是楼主想到利用UITextFieldDelegate的代理方法,在cell里通过代理方法获得输入的字符串,然后通过block在控制器里拿到字符串,最后通过赋值给已经定义的model替换掉初始化时数组里的model,通过indexPath.row来定位具体替换数组里那个model。

这么实现显然是没问题的,方便简洁,不需要重新定义数组,model,输入金额cell是用xib写的,直接拖控件,在xib里链接UITextField代理,在cell的.h文件里写上UITextFieldDelegate,声明bolck,通过- (void)textFieldDidEndEditing:(UITextField*)textField;代理方法获取输入字符串,用block传递给控制器,在控制器里保存到数组中;到这里就只是两个字:完美!

真的完美吗?可当楼主这么写完时,却发现根本获取不到字符串,为什么?一脸懵逼,,,

老办法,打断点,结果发现cell 里的block没运行,why?因为代理方法根本就没触发(block写在代理里),代理方法为嘛没触发,代理设置了,难道是代理方法有问题?显然没问题,,,百思不解,,,代理写了,也设置了,不应该啊,,,后面发现是cell里设置代理的问题,不能直接拖线设置,cell不是控制器,要用代码设置,self.trailLab.delegate=self;然后然后问题解决了,,,平常直接在xib里拖线设置代理,习惯了,一般是控制器里设置代理,在cell里设置代理不常见,所以才会出现那样的问题吧,,,

自己今天搬砖时遇到的一点小问题,记录下,分享给自己和大家~(可能理解的不一定正确,还希望遇到大神斧正~~~)


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一.UITextField属性 0.enablesReturnKeyAutomatically 默认为No,如果设...
    奋斗ing0310阅读 1,697评论 0 2
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,268评论 4 61
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,238评论 30 472
  • 今天任务有一个没有完成,因为自己总是控制不住自己玩手机,我要在手机上种树来保持专注力。今天完不成的,明天补上。
    臻臻909919阅读 104评论 0 0
  • 噪声:一个测量变量中的随机错误或偏差 噪声数据的处理方法:分箱;聚类;计算机和人工检查结合;回归 1)分箱:分箱方...
    鸣人吃土豆阅读 17,730评论 0 1