父子控制器相关

父子控制器相关

控制器父子关系的建立原则

  • 如果2个控制器的view是父子关系(不管是直接还是间接的父子关系),那么这2个控制器也应该为父子关系
[a.view addSubview:b.view];
[a addChildViewController:b];
// 或者
[a.view addSubview:otherView];
[otherView addSubbiew.b.view];
[a addChildViewController:b];

获得所有的子控制器

@property(nonatomic,readonly) NSArray *childViewControllers;

添加一个子控制器

//XMGOneViewController成为了self的子控制器
//self成为了XMGOneViewController的父控制器
[self addChildViewController:[[XMGOneViewController alloc] init]];
// 通过addChildViewController添加的控制器都会存在于childViewControllers数组中

获得父控制器

@property(nonatomic,readonly) UIViewController *parentViewController;

将一个控制器从它的父控制器中移除

// 控制器a从它的父控制器中移除
[a removeFromParentViewController];

static的作用:

  • 修饰局部变量

    • 让局部变量只初始化一次
    • 局部变量在程序中只有一份内存
    • 并不会改变局部变量的作用域,仅仅是改变了局部变量的生命周期(只到程序结束,这个局部变量才会销毁)
  • 修饰全局变量

    • 全局变量的作用域仅限于当前文件

实现拷贝的方法

  • copy
    • 只会产生不可变的副本对象(比如NSString)
  • mutableCopy
    • 只会产生可变的副本对象(比如NSMutableString)

UIScrollView内部子控件添加约束的注意点:

  • 子控件的尺寸不能通过UIScrollView来计算,可以考虑通过以下方式计算
    • 可以设置固定值(width==100,height==300)
    • 可以相对于UIScrollView以外的其他控件来计算尺寸
  • UIScrollView的frame应该通过子控件以外的其他控件来计算
  • UIScrollView的contentSize通过子控件来计算
    • 根据子控件的尺寸以及子控件与UIScrollView之间的间距

指针p的加减法运算

  • 指针p + N
    • p里面存储的地址值 + N * 指针所指向类型的占用字节数
  • 指针p - N
    • p里面存储的地址值 - N * 指针所指向类型的占用字节数

数组名

  • 存储的是数组首元素的地址
  • 等价于:一个指向数组首元素的指针
  • 数组名 + 1 的跨度:数组首元素的占用字节数

其他结论

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

推荐阅读更多精彩内容

  • 父子控制器:导航控制器,UITabBarViewController等。 父子控制器的设计原理:a控制器的View...
    yikee松岛枫的kk阅读 212评论 0 0
  • 多线程、特别是NSOperation 和 GCD 的内部原理。运行时机制的原理和运用场景。SDWebImage的原...
    LZM轮回阅读 2,044评论 0 12
  • ———————————————回答好下面的足够了---------------------------------...
    恒爱DE问候阅读 1,767评论 0 4
  • iOS面试小贴士 ———————————————回答好下面的足够了------------------------...
    不言不爱阅读 2,015评论 0 7
  • 每个人都有心情不好的时候,千头万绪的案头事务,纷繁复杂的人际关系,日复一日的紧张与疲惫,使之无时不处在疲惫与困顿之...
    一笑而过2023阅读 1,351评论 0 0