iOS UIKit - 视图结构

来源:互联网 发布:slack软件 编辑:程序博客网 时间:2024/04/30 01:38

(1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序。
(2)每一个应用都有自己的UIApplication对象,而且是单例的,如果试图在程序中新建一个UIApplication对象,那么将报错提示。
(3)通过[UIApplicationsharedApplication]可以获得这个单例对象
(4) 一个iOS程序启动后创建的第一个对象就是UIApplication对象,且只有一个(通过代码获取两个UIApplication对象,打印地址可以看出地址是相同的)。
(5)利用UIApplication对象,能进行一些应用级别的操作

一、使用步骤

1.main函数

2.UIApplicationMain

  • 创建UIApplication对象
  • 创建UIApplication的delegate对象

3.加载视图

(1)delegate对象开始处理(监听)系统事件(没有storyboard)

  • 程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWithOptions:方法
  • 在application:didFinishLaunchingWithOptions:中创建UIWindow
  • 创建和设置UIWindow的rootViewController
  • 显示窗口

(2)根据Info.plist获得最主要storyboard的文件名,加载最主要的storyboard(有storyboard)

  • 创建UIWindow
  • 创建和设置UIWindow的rootViewController
  • 显示窗口

二、基本属性

1)设置应用程序图标右上角的红色提醒数字(如QQ消息的时候,图标上面会显示1,2,3条新信息等。)

@property(nonatomic) NSInteger applicationIconBadgeNumber;

2)设置联网指示器的可见性

@property(nonatomic,getter=isNetworkActivityIndicatorVisible) BOOL networkActivityIndicatorVisible;

3)管理状态栏

从iOS7开始,系统提供了2种管理状态栏的方式
如果状态栏的样式只设置一次,那就用UIApplication来进行管理
如果状态栏是否隐藏,样式不一样那就用控制器进行管理
UIApplication来进行管理有额外的好处,可以提供动画效果

a.通过UIViewController管理(每一个UIViewController都可以拥有自己不同的状态栏).

在iOS7中,默认情况下,状态栏都是由UIViewController管理的,UIViewController实现下列方法就可以轻松管理状态栏的可见性和样式
状态栏的样式   - (UIStatusBarStyle)preferredStatusBarStyle;
状态栏的可见性  -(BOOL)prefersStatusBarHidden;

b.通过UIApplication管理(一个应用程序的状态栏都由它统一管理)

如果想利用UIApplication来管理状态栏,首先得修改Info.plist的设置

4)openURL:方法

UIApplication有个功能十分强大的openURL:方法
- (BOOL)openURL:(NSURL*)url;
openURL:方法的部分功能有
打电话 UIApplication *app = [UIApplicationsharedApplication]; [app openURL:[NSURLURLWithString:@”tel://10086”]];
发短信 [app openURL:[NSURLURLWithString:@”sms://10086”]];
发邮件 [app openURL:[NSURLURLWithString:@”mailto://12345@qq.com”]];
打开一个网页资源 [app openURL:[NSURLURLWithString:@”http://ios.itcast.cn“]];
打开其他app程序 openURL方法,可以打开其他APP。

5.UIAppDelegate生命周期

在app受到干扰时,会产生一些系统事件,这时UIApplication会通知它的delegate对象,让delegate代理来处理这些系统事件。当被打断的时候,通知代理进入到后台。

三、代码示例

四、总结

2 0
原创粉丝点击