转自:http://blog.csdn.net/wangyangkobe/article/details/18996227

When a nib is loaded, the nib loader allocates and initializes all objects, then hooks up all of their outlets and actions. Because of the order in which this happens, you cannot access outlets in your initializer. You can try, but they will all be nil.

After all outlets and actions are connected, the nib loader sends awakeFromNib to every object in the nib. This is where you can access outlets to set up default values or do configuration in code. Example:

试译:当所有的“外引”和动作都连接完毕后,nib“加载器”就像nib文件上所有的对象(如button、view)发送awakeFromNib消息。

http://wiresareobsolete.com/wordpress/2010/03/awakefromnib/

[objc]  view plain copy
  1. @implementation SecondView
  2. - (id)initWithFrame:(CGRect)frame
  3. {
  4. self = [super initWithFrame:frame];
  5. if (self) {
  6. // Initialization code
  7. }
  8. return self;
  9. }
  10. - (void)awakeFromNib{
  11. [super awakeFromNib];
  12. NSLog(@"call %s", __FUNCTION__);
  13. self.backgroundColor = [UIColor redColor];
  14. }

一般在UIView的子类重载该方法。

[objc]  view plain copy
  1. @implementation BlueButton
  2. - (id)initWithFrame:(CGRect)frame
  3. {
  4. self = [super initWithFrame:frame];
  5. if (self) {
  6. // Initialization code
  7. }
  8. return self;
  9. }
  10. - (void)awakeFromNib{
  11. [super awakeFromNib];
  12. NSLog(@"call %s", __FUNCTION__);
  13. self.backgroundColor = [UIColor blueColor];
  14. [self setTitle:@"Blue Button" forState:UIControlStateNormal];
  15. }
  16. - (id)initWithCoder:(NSCoder *)aDecoder{
  17. NSLog(@"call %@", @"initWithCoder");
  18. if (self = [super initWithCoder:aDecoder]) {
  19. self.titleLabel.text = @"initWithCoder";
  20. }
  21. return  self;
  22. }
  23. @end

如果是从nib中加载BuleButton,方法 initWithCoder  会调用,并且先于  awakeFromNib  调用。

关于awakeFromNib的学习相关推荐

  1. iPhone App开发实战手册学习笔记(5)之IOS常用机制

    1 前言 在IOS开发中,相信大家一定听说过委托,数据源,target,action等等,今天我们就来简单的学习一下这些内容. 2 详述 2.1 委托和数据源 大家是否曾经有不知道如何去执行一项任务的 ...

  2. 【swift学习笔记】三.使用xib自定义UITableViewCell

    使用xib自定义tableviewCell看一下效果图 1.自定义列 新建一个xib文件 carTblCell,拖放一个UITableViewCell,再拖放一个图片和一个文本框到tableviewc ...

  3. iOS 疑难杂症 学习笔记

    iOS Learing note 出现问题:虚拟机 Xcode 调试时候发现键盘出不来 错误提示:Xcode 提示: Can't find keyplane that supports type 8 ...

  4. OC学习2021-08

    OC学习 navigationcontroller 不显示navigationBar 需要设置代理来控制navigation @interface LoginViewController () < ...

  5. 2021新出iOS开发程序员学习路线,涵盖大部分iOS知识体系【不会没收藏吧!】

    这个栏目将持续更新--请iOS的小伙伴关注! 整理不易,如果您觉得还不错,麻烦在文末 "点个赞" 或者 评论 "Mark",谢谢您的支持 1.字符串常用方法 字 ...

  6. iOS学习——Quartz2D学习之UIKit绘制

    iOS学习--Quartz2D学习之UIKit绘制 1.总述 在IOS中绘图技术主要包括:UIKit.Quartz 2D.Core Animation和OpenGL ES.其中Core Animati ...

  7. 2011斯坦福大学iOS应用开发教程学习笔记(第七课)Pad和iPhone的通用程序

    第七课的主要内容:iPad 和iPhone的通用程序 这节课主要讲如何在一个程序里适配iPad 和iPhone. 内容简介 1.UIToolbar上面放的都是UIBarButtonItem 可以参考i ...

  8. 斯坦福大学iOS应用开发教程学习笔记(第七课)Pad和iPhone的通用程序

    第七课的主要内容:iPad 和iPhone的通用程序 这节课主要讲如何在一个程序里适配iPad 和iPhone. 内容简介 1.UIToolbar上面放的都是UIBarButtonItem 可以参考i ...

  9. java入门 慕路径,Java入门基础知识总结学习教程大全【必看经典】

    类型的表达式,是循环条件,表达式3是党执行了一遍循环之后,修改控制循环的变量值. ??? for语句的执行过程是这样的:首先计算表达式1,完成必要的初始化工作:然后判断表达式2的值,如果表达式的值为t ...

最新文章

  1. Android面试题目之六---Handler,Looper和MessageQueue深入研究
  2. THE TOP FILE(top文件详解)
  3. csv 字符串_爬虫|python读写csv文件的方法完成生涯规划表
  4. boost::system::system_error相关的测试程序
  5. 随机数生成java代码_Java Bullshifier –生成大量随机代码库
  6. fragment嵌套,viewpager嵌套 不能正确显示
  7. 百度音乐怎么转换格式?MP3格式转换为wav的方法分享
  8. oracle 自增长这么使用,Eova Oracle 自增长的处理
  9. 高速公路收费站通行能力分析与设计
  10. mysql pdo教程_(唯一合适) PDO 教程
  11. 中移物联网联合上研院推出快速定位服务,助力智慧物联网发展
  12. 在网上请不要惹一个程序员
  13. Kali开机后的初始化配置
  14. 我用自己的亲身经历告诉你为什么不建议你合租!
  15. 安装一个apk引起的无法开机。
  16. Hbase的JavaAPI
  17. 经典面试智力题和解答
  18. 最全电商分类信息(02)
  19. 工业环境中的数字孪生:最先进的技术
  20. (22)打鸡儿教你Vue.js

热门文章

  1. 用计算机语言表达喜欢之情,网络流行语的取舍与运用
  2. 计算机制作表格的结论,计算机基础实验报告电子表格处理-20210320050712.docx-原创力文档...
  3. 合伙创业 务必远离十种人
  4. TCP长连接和短链接
  5. CSS ::Selection
  6. 爱奇艺如何治理数据和质量监控的?
  7. restFul面试题
  8. 【测试沉思录】18.如何测试微信小程序?
  9. 【天命奇御】成就进度62/71的通关攻略(4·地图篇)
  10. 怎样才能画好动漫少女黑丝袜?