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# 文章导航

    1. C#相关文章 1.1 C# 基础(一) 访问修饰符.ref与out.标志枚举等等 1.2 C# 基础(二) 类与接口 1.3 C# DateTime日期格式化 1.4 C# DateTime与时 ...

  2. 使用Oracle官方巡检工具ORAchk巡检数据库

    ORAchk概述 ORAchk是Oracle官方出品的Oracle产品健康检查工具,可以从MOS(My Oracle Support)网站上下载,免费使用.这个工具可以检查Oracle数据库,Gold ...

  3. Hive安装配置指北(含Hive Metastore详解)

    个人主页: http://www.linbingdong.com 本文介绍Hive安装配置的整个过程,包括MySQL.Hive及Metastore的安装配置,并分析了Metastore三种配置方式的区 ...

  4. hadoop2.7之Mapper/reducer源码分析

    一切从示例程序开始: 示例程序 Hadoop2.7 提供的示例程序WordCount.java package org.apache.hadoop.examples; import java.io.I ...

  5. 终端mysql Operation not permitted错误解决方案

    前言 前段时间装mysql,就遇到了ln: /usr/bin/mysql: Operation not permitted的错误,网上好多方法都过时了,下边是我的解决方法 原因 这是因为苹果在OS X ...

  6. Linux基础介绍【第九篇】

    服务器添加3块磁盘的体系结构 [root@oldboylinux test]# free -m              total used free shared buffers cached M ...

  7. Performance Tuning

    本文译自Wikipedia的Performance tuning词条,原词条中的不少链接和扩展内容非常值得一读,翻译过程中暴露了个人工程学思想和英语水平的不足,翻译后的内容也失去很多准确性和丰富性,需 ...

  8. 《Walking the callstack(转载)》

    本文转载自:https://www.codeproject.com/articles/11132/walking-the-callstack Download demo project with so ...

  9. 搭建TFS 2015 Build Agent环境(一)

    Download the build agent Downloading the build agent is really simple. Navigate to your TFS control ...

  10. 机器指令翻译成 JavaScript —— No.2 跳转处理

    上一篇,我们发现大多数 6502 指令都可以直接 1:1 翻译成 JS 代码,但除了「跳转指令」. 跳转指令,分无条件跳转.条件跳转.从另一个角度,也可分: 静态跳转:目标地址已知 动态跳转:目标地址 ...