很多知识点,并不难。只是,根本不知道这个概念,每次都要探坑后,才会知道有这个东西。
ld: symbol(s) not found for architecture x86_64
在.o 文件 中 找不到定义。
oc编译是先编译出.o文件,再链接。
如果在.h 声明,在.m没有实现,便会找不到符号(symbol)。不用就没关系。
restoration identifier 和 reuse identifier 不一样。
restoration identifier 是恢复用的。
reuseIdentifier 才是cell用的。
tableViewcell 的 reuseIdentifier只有在初始化的时候可以赋值,之后一直不变;
如果通过nib加载cell,需要注册nib文件。
自定义view 的init 可以写在awakeFromNIb
析构 可以写在dealloc
但是要考虑, 是否应该添加一个initView 手动调用。
通过viewController initWithNib 加载到舞台上的元素,viewWillDisapper
viewDidLoad 在add subView: controller.view 的时候触发。
但是,这并不代表,这个controller已经在管理内。
需要手动 addChildController.
苹果新的API增加了addChildViewController方法,并且希望我们在使用addSubview时,
同时调用[self addChildViewController:child]方法
将sub view对应的viewController也加到当前ViewController的管理中。
对于那些当前暂时不需要显示的subview,只通过addChildViewController把subViewController加进去;
需要显示时再调用transitionFromViewController方法。
将其添加进入底层的ViewController中。
// 方法 addChildViewController:
removeFromParentViewController: transitionFromViewController:toViewController:duration:options:animations:completion:
willMoveToParentViewController:
didMoveToParentViewController: // 属性 @property(nonatomic,readonly) NSArray *childViewControllers
file’s owner 和view controller 一起用,用initWithnib
如果只是view 可以自定ui