UIApplication实用方法

前言:

本文介绍的方法每一个人在项目都应用过,只是有的时候容易忘记每次都要去百度。因为有些方法在整个项目中可能就只会写一次,基于此我只是做个笔记。

1. 每一个应用程序都有一个UIApplication对象,是一个单例。在程序中只能通过[UIApplication sharedApplication]来获得这个单例对象,不能通过alloc去新建一个UIApplication对象

2. 利用UIApplication可以进行的应用级别操作举例

(1)设置应用程序图标右上角的红色提醒数字(applocationIconBadgeNumber)

实例代码:

//获取到应用程序中UIApplication单例对象
//设置应用程序图标右上角的红色提醒数字
// 获取当前应用程序的UIApplication对象
UIApplication *app = [UIApplication sharedApplication];
[UIApplication sharedApplication].applicationIconBadgeNumber = @"20";
//在IOS8以后要想设置applicationIconBadgeNumber,需要用户的授权,在IOS8以后,需要加上下面的代码 float version = [[[UIDevice currentDevice] systemVersion] floatValue];
if (version >= 8.0) {
UIUserNotificationSettings * settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];
[app registerUserNotificationSettings:settings]; }

效果图:

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

netWworkActivityIndicatorVisible

实例代码:

设置联网指示器可见

app.networkActivityIndicatorVisible = YES;

效果图:

(3)管理状态栏

从iOS7开始,系统提供了2种管理状态栏的方式

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

在iOS7以后默认情况下,状态栏都是由UIViewController管理的,通过实现以下两个方法:

状态样式:- (UIStatusBarStyle)preferredStatusBarStyle;

状态栏的可见性: - (BOOL)prepersStatusBarHidden;

实例代码:

- (UIStatusBarStyle)preferredStatusBarStyle{

    //UIStatusBarStyleDefault        //默认,黑色
//UIStatusBarStyleLightContent //白色
return UIStatusBarStyleLightContent;
} //状态栏是否隐藏
- (BOOL)prefersStatusBarHidden{ return YES;
}

效果图:

通过UIApplication管理(一个应用程序的所有界面的状态栏都由它统一管理)

如果想利用UIApplication来管理状态栏,首先得修改Info.plist的设置(添加属性View controller-based status bar appearance 并且设置其BOOL值为NO),然后在程序中实现以下代码:
//设置状态栏的样式
app.statusBarStyle = UIStatusBarStyleDefault; //默认(黑色) //白色
app.statusBarStyle = UIStatusBarStyleLightContent; //设置是否隐藏状态栏
app.statusBarHidden = NO;
//系统方法,当从tabbar push过来的时候不隐藏tabbar
- (BOOL)hidesBottomBarWhenPushed{
return NO;
}
#pragma mark - 禁止横屏幕
- (BOOL)shouldAutorotate
{
return NO;
}
/**当前是否支持哪些转屏*/
- (UIInterfaceOrientationMask)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
} - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationLandscapeRight;
} /**显示状态栏*/
- (BOOL)prefersStatusBarHidden
{
return NO;
}

(4)openURL:方法

UIApplication有个功能十分强大的openURL:方法

-(BOOL)openURL:(NSURL *)url;

//openURL:方法的部分功能有
//打电话:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@“tel://18812345678”]]; //发短信:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@“sms://18812345678"]]; //发邮件:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@“mailto://marlonxlj@163.com”]]; //打开网页:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@“http://www.baidu.com”]]; //调用谷歌地图(Google Maps)
NSString *searchQuery = @"1 Infinite Loop, Cupertino, CA 95014";
searchQuery = [addressText stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
NSString *urlString=[NSString stringWithFormat:@"http://maps.google.com/maps?q=%@", searchQuery];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: urlString]]; //调用应用商店(AppStore),这个地址是可以官网上查到的
NSURL *appStoreUrl= [NSURL URLWithString:@"http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=291589999&mt=8"];
[[UIApplication sharedApplication] openURL:appStoreUrl]; //调用appstore中程序的评论
NSString *str = [NSString stringWithFormat:
@"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%d",
m_appleID ];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];

> 关于iOS10系统调用的问题

> iOS10以下可以调用到系统的WIFI设置等,但是iOS10以后就不再支持系统调用到WIFI设置等,只是调到App的系统设置页面。

> 有任何问题请及时issues me

> Email: marlonxlj@163.com

UIApplication和OpenUrl的基于使用方法的更多相关文章

  1. Ios 调用Appstore 下载界面 [[UIApplication sharedApplication] openURL

    http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?mt=8&id=286274367 id = itunesconn ...

  2. iOS开发中使用[[UIApplication sharedApplication] openURL:]加载其它应用

        iOS 应用程序之间(1)  在iOS开发中,经常需要调用其它App,如拨打电话.发送邮件等.UIApplication:openURL:方法是实现这一目的的最简单方法,该方法一般通过提供的u ...

  3. Spring-Context之六:基于Setter方法进行依赖注入

    上文讲了基于构造器进行依赖注入,这里讲解基于Setter方法进行注入.在Java世界中有个约定(Convention),那就是属性的设置和获取的方法名一般是:set+属性名(参数)及get+属性名() ...

  4. UCP规模估算方法介绍 基于UCP方法的软件项目成本估计及其应用方法,软件,项目,UCP方法,应用,项目估算及软件及应用,软件估算,项目成本,软件项目

    基于UCP方法的软件项目成本估计及其应用 UCP说明: UCP = 交易的UCP数 + Actor的UCP数,1.交易/Actor在估算时按复杂度分为简单.普通.复杂.主观类别,权重分别对应1.2.3 ...

  5. 基于SCRUM方法实践的西油计科党建设计与实现

    基于SCRUM方法实践的西油计科党建设计与实现 序言 所属课程 https://edu.cnblogs.com/campus/xnsy/2019autumnsystemanalysisanddesig ...

  6. 基于SCRUM方法实践的西油计科党建设计与实现-个人实践流程清单

    基于SCRUM方法实践的西油计科党建设计与实现 个人实践流程清单 一.Alpha版本冲刺个人在SCRUM团队任务清单: 时间 我这个三天做了什么 实际解决燃尽图项目数量 我遇到了什么问题 我下一个三天 ...

  7. PCFG -- 基于统计方法生成语法树

    语法树的作用 一棵语法树不仅包括了词性(part of speech), 还包括了短语(如名词短语, 动词短语)和结构化的信息(如主语, 谓语和宾语). 这些信息是进行机器翻译所必须的, 例如机器翻译 ...

  8. 基于核方法的模糊C均值聚类

    摘要: 本文主要针对于FCM算法在很大程度上局限于处理球星星团数据的不足,引入了核方法对算法进行优化.  与许多聚类算法一样,FCM选择欧氏距离作为样本点与相应聚类中心之间的非相似性指标,致使算法趋向 ...

  9. 网络测量中基于Sketch方法的调查

    目录 LD Sketch SeqHash What's New reversible sketch Count-Sketch和Count-min sketch Diamond Sketch: Accu ...

随机推荐

  1. C语言 · 高精度加法

    问题描述 输入两个整数a和b,输出这两个整数的和.a和b都不超过100位. 算法描述 由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储.对于这种问题,一般使用数组来处理. 定义一个数组A ...

  2. nodejs进阶(3)—路由处理

    1. url.parse(url)解析 该方法将一个URL字符串转换成对象并返回. url.parse(urlStr, [parseQueryString], [slashesDenoteHost]) ...

  3. ASP.NET Core 中文文档 第四章 MVC(3.8)视图中的依赖注入

    原文:Dependency injection into views 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:孟帅洋(书缘) ASP.NET Core 支持在视图中使用 依赖 ...

  4. JS里面Data日期格式转换

    var format = function(time, format){     var t = new Date(time);     var tf = function(i){return (i  ...

  5. SQLServer地址搜索性能优化例子

    这是一个很久以前的例子,现在在整理资料时无意发现,就拿出来再改写分享. 1.需求 1.1 基本需求: 根据输入的地址关键字,搜索出完整的地址路径,耗时要控制在几十毫秒内. 1.2 数据库地址表结构和数 ...

  6. SQL Server-聚焦使用视图若干限制/建议、视图查询性能问题,你懵逼了?(二十五)

    前言 上一节我们简单讲述了表表达式的4种类型,这一系列我们来讲讲使用视图的限制,简短的内容,深入的理解,Always to review the basics. 避免在视图中使用ORDER BY 上一 ...

  7. node-sass 安装失败的解决措施

    在测试gulp-webapp的时候遇到了styles不能被正常编译的问题,究其原因是node-sass没有被正常安装. 根本原因是国内网络的原因. 最终的解决方法是通过淘宝的npm镜像安装node-s ...

  8. 120项改进:开源超级爬虫Hawk 2.0 重磅发布!

    沙漠君在历时半年,修改无数bug,更新一票新功能后,在今天隆重推出最新改进的超级爬虫Hawk 2.0! 啥?你不知道Hawk干吗用的? 这是采集数据的挖掘机,网络猎杀的重狙!半年多以前,沙漠君写了一篇 ...

  9. 【原创分享·微信支付】C# MVC 微信支付之微信模板消息推送

    微信支付之微信模板消息推送                    今天我要跟大家分享的是“模板消息”的推送,这玩意呢,你说用途嘛,那还是真真的牛逼呐.原因在哪?就是因为它是依赖微信生存的呀,所以他能不 ...

  10. 免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)

    在生活中有一种东西几乎已经快要成为我们的另一个电子”身份证“,那就是二维码.无论是在软件开发的过程中,还是在普通用户的日常中,几乎都离不开二维码.二维码 (dimensional barcode) , ...