在iOS的操作系统中 每一个程序都对应一个application单例,每一个application都对应一个Appdelegate代理,在代理中控制程序的各个状态。我们在程序中获取Application单例:[UIApplication sharedApplication].当进行有关该应用的相关操作设置时需要获取,进行响应的操作。比如:

1、应用之间的调用和跳转

打开电话:[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:[NSStringstringWithFormat:@"tel://%@",_PersonPhoneStr]]];

打开邮箱:[[UIApplication sharedApplication] openURL:[NSURLURLWithString:@"mailto://devprograms@apple.com"]];打开短信:[[UIApplicationsharedApplication] openURL:[NSURL URLWithString:@"sms://466453"]];

打开浏览器[[UIApplication sharedApplication] openURL:[NSURLURLWithString:@"http://itunesconnect.apple.com"]];

也可以打开自己指定的程序:首先必须要知道要打开的程序所制定的url协议,然后再本程序中调用以下方法:[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"要打开的软件协议名称://"]];

比如:创建A程序,我在A程序中的info.plist中制定对外程序打开A程序的url协议:

然后再A程序的appdelegate中实现:

-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{

if([[url

scheme] isEqualToString:@"myapp"]){

return

YES;

}

return

NO;

}。在B程序中调用以下方法打开A程序:[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"myapp://"]];

如果想传参数直接在//后面加就可以。

2、设置appIcon图标上的红色提示数字。

在ios8以后加入了用户权限的判断,在程序启动时首先执行:

float version = [[[UIDevice currentDevice] systemVersion] floatValue];

if (version >= 8.0) {

UIUserNotificationSettings *settings = [UIUserNotificationSettingssettingsForTypes:UIUserNotificationTypeBadge categories:nil];

[[UIApplication sharedApplication] registerUserNotificationSettings:settings];

}

然后在程序任何地方可以通过以下代码设置角标:

UIApplication *app=[UIApplication sharedApplication];

app.applicationIconBadgeNumber=123;

当使用推送时相应的应该会有一个全局变量表示当前角标的数量,当在后台收到推送时应该在+1,当程序打开时应该把此角标变量设置为0.
 
3、在状态栏中显示网络加载。

UIApplication *app=[UIApplication sharedApplication];

app.networkActivityIndicatorVisible=YES;

4、管理状态栏

iOS中管理状态栏有两种方式:1、使用UIApplication进行全局设置:首先在info.plist的文件中加入: 然后在程序中调用以下代码:

UIApplication *app=[UIApplication sharedApplication];

[app setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];

2、在每个界面中都可以对状态栏进行控制:在Viewcontroller中重写以下两个方法:

#pragma mark-设置状态栏的样式

-(UIStatusBarStyle)preferredStatusBarStyle

{

//设置为白色

//return UIStatusBarStyleLightContent;

//默认为黑色

return UIStatusBarStyleDefault;

}

#pragma mark-设置状态栏是否隐藏(否)

-(BOOL)prefersStatusBarHidden

{

return YES;

}

iOS中浅淡UIApplication单例-b的更多相关文章

  1. 作为UIApplication单例对象的方法 openURL方法的变化

    作为UIApplication单例对象的方法 openURL: 在iOS开发中经常用来实现在当前应用打开外部链接的需求比如跳转到其他应用,跳转应用隐私设置界面;还有相关API canOpenURL:  ...

  2. 关于UIApplication单例传值

    由于UIApplication的是一个系统级别的单例,那么就能够省去自己创建单例的方法,将需要需要的类对象,在UIApplication单例内声明一个,通过点语法来实现单个 需要调用的实现单例模式的类 ...

  3. RPCZ中的智能指针单例

    RPCZ中的智能指针单例 (金庆的专栏) 智能指针单例应用于 RPCZ 库以实现库的自动初始化与自动清理. RPCZ: RPC implementation for Protocol Buffers ...

  4. spring中如何向一个单例bean中注入非单例bean

    看到这个题目相信很多小伙伴都是懵懵的,平时我们的做法大都是下面的操作 @Component public class People{ @Autowired private Man man; } 这里如 ...

  5. iOS 页面间传值 之 单例传值 , block 传值

    ios 页面间传值有许多,前边已经分享过属性传值和代理传值,今天主要说一下单例传值和 block 传值 单例传值:单例模式一种常用的开发的模式,单例因为在整个程序中无论在何时初始化对象,获取到的都是同 ...

  6. 【iOS】ARC-MRC下的单例及其应用

    单例的应用十分普遍,单例模式使一个类仅仅有一个实例. *易于供外界訪问. *方便控制实例个数,节约系统资源. *OC中的常见单例: 如:UIApplication,  NSNotificationCe ...

  7. IOS设计模式第二篇之单例设计模式

    现在我们的组件已经有组织了.你需要从其他的地方得到数据,你也可以创建一个API类管理数据这个下个设计模式单例里面介绍. 这个单例设计模式确保这个类仅仅拥有一个实例,并且为这个实例提供一个全局的访问点. ...

  8. c++单例模式为什么不在析构函数中释放静态的单例对象(转)

    需要清楚一下几点:   1.单例中的 new 的对象需要delete释放.   2.delete释放对象的时候才会调用对象的析构函数.   3.如果在析构函数里调用delete,那么程序结束时,根本进 ...

  9. springmvc中的controller是单例的

    今天发现spring3中的controller默认是单例的,若是某个controller中有一个私有的变量a,所有请求到同一个controller时,使用的a变量是共用的,即若是某个请求中修改了这个变 ...

随机推荐

  1. MySql The service could not be started

    MySql安装 由于需要用mySql数据库今天就把它安上了,每次安装软件,数据库总是够我们折腾的,有时出现错误甚至比重装系统还要让人头疼. 今天在安的过程中就不出了很多错误,在重启与重装的反复捣鼓中终 ...

  2. JAVA基于AE调用GP实现泰森多边形

    调用GP实现数据处理是较快捷.较易入手的方法. 使用JAVA语言基于AE调用GP实现泰森多边形的代码例如以下: public void CreatVoronoi(){ try { GeoProcess ...

  3. [置顶] Linux 流量控制

    在如今的网络界,也许TC知道的人并不多了,这篇文章做留恋吧. 以前研究TC时记录下的讲解与配置文件. eth1:192.168.1.1,内网口  业务需求:保证正常的网页浏览,FTP,SMTP,POP ...

  4. js控件位置

    function ShowSettingDiv() { var div = document.getElementById('ShowDiv'); //将要弹出的层 div.style.display ...

  5. 解决github提交commit,contributions不统计显示绿色的问题

    最近使用GitHub Desktop时,发现自己好多次的commits都没有被记录在Contributions中,但是点开项目详情里面可以看到自己的commit确实上传成功了,所以就忧伤了,为什么没有 ...

  6. iOS viewController 和 view 的创建消失生命周期总结

    控制器创建的生命周期 1. 如果从stroryBoard 中产生一个controller,那么会先调用initWithCoder:, awakeFromNib, loadView,viewDidLoa ...

  7. json、xml ---- 数据格式生成类

    自己写的一个生成json/xml 格式数据的类,可用于api数据传输: <?php class Response{ /** *生成指定数据格式 *@param intval $code 状态码 ...

  8. CentOS LNMP安装phpMyAdmin

    假设: 已经配置好LNMP环境,并且Nginx的网页目录在/usr/local/nginx/html 1.下载phpMyAdmin wget https://files.phpmyadmin.net/ ...

  9. jad批量反编译class和jadeclipse集成到eclipse的设置方法

    安装jad配置 1.从http://varaneckas.com/jad/下载windows版本的jad.exe 2.安装完毕后配置jad的系统环境变量 批量解压jar和class文件 1.使用7zi ...

  10. hadoop集群环境搭建之zookeeper集群的安装部署

    关于hadoop集群搭建有一些准备工作要做,具体请参照hadoop集群环境搭建准备工作 (我成功的按照这个步骤部署成功了,经实际验证,该方法可行) 一.安装zookeeper 1 将zookeeper ...