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

来源:互联网 发布:windows xp停止更新 编辑:程序博客网 时间:2024/05/29 14:39

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
原创粉丝点击