UI课程12 模态viewController,单例及单例模式

1.页面的切换方法
1)使用UINavigationController(push,pop)
2)使用视图控制器自身的一对方法(模态)
2.模态

//推出新的页面
[self presentViewController:addContactNC animated:YES completion:nil];
//退回原来的页面
[self dismissViewControllerAnimated:YES completion:nil];

通过上述方法显示的controller被称为模态视图控制器。
注意:1)模态视图控制器不是一个类,只是一种方式显示的controller
2)导航控制器的Controller具有层级关系,present控制显示的Controller与之前的Controller是两个层级

附:presentingViewController 当前显示的视图控制器
presentedViewController 被弹出的视图控制器

[self dismissViewControllerAnimated:YES completion:nil];//相当于
    [self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
    //使用self掉用方法,系统会使用self.presentingViewController调用这个方法

3.单例
单:唯一性
例:实例对象
1)单例:即使用某个类创建的对象是程序中唯一的实例对象(避免了alloc每次创建的不是同一个对象)
2)单例类:只能创建一个对象的类。可以是:工具类,视图类,控制器类。
3)适用于:多个页面需要同一个数据(源),或者数据没法从数据源页到达目的页时,将这个“同一个数据”及其相关的方法写入此类中(如:共享资源的增删改查)。
单例类的 .m文件中:

//单例类
+ (instancetype)shareDataManager{

    //声明静态变量,设置为空
    static DataManager *manager = nil;

    //判断是否为空,空则创建
    if (manager == nil) {
        manager = [[DataManager alloc] init];
    }

    //返回对象
    return manager;

}

注意:
1)操作单例对象的变量(比如存放解析数据的数组,而这个数组是其一个属性)存储在静态区,程序关闭后由系统自动回收
2)单例对象存储在堆区,不释放,程序关闭后由系统自动回收
3)变量和单例对象的生命周期与程序同步。
优点
1)在内存中只有一个对象,节省内存空间
2)避免频繁的创建销毁对象,可以提高性能
3)避免对共享资源的多重占用,实现资源共享
4)可以全局访问
5)降低模块间的耦合度,降低代码的复杂度

4.单例模式
是一种设计模式
实现:定义一个单例类,实现资源共享。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值