本文转载至 http://www.aichengxu.com/view/35326

UIAlertView及UIActionSheet在ios8中被放弃,其功能将完全由UIAlertController代替:

1.Alert用法

UIAlertController *alert = [UIAlertControlleralertControllerWithTitle:@"This is Title"

message:@"This is message"

preferredStyle:UIAlertControllerStyleAlert];

[alert addAction:[UIAlertAction actionWithTitle:@"Action 1 (Default Style)"

style:UIAlertActionStyleDefault

handler:^(UIAlertAction *action) {

NSLog(@"Action 1 Handler Called");

}]];

[alert addAction:[UIAlertAction actionWithTitle:@"Action 2 (Cancel Style)"

style:UIAlertActionStyleCancel

handler:^(UIAlertAction *action) {

NSLog(@"Action 2 Handler Called");

}]];

[alert addAction:[UIAlertAction actionWithTitle:@"Action 3 (Destructive Style)"

style:UIAlertActionStyleDestructive

handler:^(UIAlertAction *action) {

NSLog(@"Action 3 Handler Called");

}]];

[alert addTextFieldWithConfigurationHandler:^(UITextField *textField) {

UITextField * tf = [[UITextField alloc]initWithFrame:CGRectMake(0, 0, 80, 30)];

}];

[self presentViewController:alert animated:YES completion:nil];

2,actionsheet用法

UIAlertController *alertController = [UIAlertController alertControllerWithTitle:nil message:nilpreferredStyle:UIAlertControllerStyleActionSheet];

[alertController addAction:[UIAlertAction actionWithTitle:@"111"

style:UIAlertActionStyleDefault

handler:^(UIAlertAction *action) {

NSLog(@"111");

}]];

[alertController addAction:[UIAlertAction actionWithTitle:@"222"

style:UIAlertActionStyleCancel

handler:^(UIAlertAction *action) {

NSLog(@"222");

}]];

[self presentViewController:alertController animated:YES completion:nil];

版本判断语句

#define iOS(version) (([[[UIDevice currentDevice] systemVersion] intValue] >= version)?1:0)

可进行判断添加alertController或是aletView和actionsheet

3.新的问题,当在ios8下做好判断之后,返回ios7或ios6运行xcode,报错-------

原因:UIAlertController只在ios8下的框架里由此文件,ios7及以下版本没有,但编译的时候还是会进行编译(虽然运行时不走这部分代码)

解决方法:编译时进行判断,只有在ios8SDK下编译此部分

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000

"alertcontroller相关代码"

#endif

重新运行xcode,ok,可以正常运行了.

UIAlertView及UIActionSheet 在ios8极其以下版本的兼容问题解决方案的更多相关文章

  1. SQLServer 2008 还原数据库备份版本不兼容的问题

    我们准备还原一个数据库备份的时候,经常会弹出这样的错误:System.Data.SqlClient.SqlError: 该数据库是在运行版本 10.50.1600 的服务器上备份的.该版本与此服务器( ...

  2. UIAlertView、UIActionSheet兼容iOS8

    链接地址:http://blog.csdn.net/nextstudio/article/details/39959895?utm_source=tuicool 1.前言 iOS8新增了UIAlert ...

  3. iOS8以后UIAlertView和UIActionSheet两种alert页面都将通过UIAlertController来创建

    1. Important: UIAlertView is deprecated in iOS 8. (Note that UIAlertViewDelegate is also deprecated. ...

  4. UIAlertView、 UIActionSheet

    一.UIAlertView. UIActionSheet都是ios系统自带的弹出式对话框,当UIAlertView或UIActionSheet弹出来时用户无法与应用界面中的其它控件交互,UIAlert ...

  5. iOS开发——UI篇Swift篇&UIAlertView/UIActionSheet

    UIAlertView/UIActionSheet UIAlertView //一个按钮的提醒 @IBAction func oneButtonAler() { //创建单一按钮提醒视图 let on ...

  6. 用block将UIAlertView与UIActionSheet统一起来

    用block将UIAlertView与UIActionSheet统一起来 效果 1. 将代理方法的实例对象方法转换成了类方法使用 2. 要注意单例block不要长期持有,用完就释放掉 源码 https ...

  7. iOS 8 中 UIAlertView 和 UIActionSheet 河里去了?

    iOS 8 中 UIAlertView 和 UIActionSheet 河里去了? 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商 ...

  8. iOS:简单使用UIAlertVIew和UIActionSheet

    做iOS开发的同学想必都用过UIAlertVIew或者UIActionSheet.UIAlertVIew 可以弹出一个出现在屏幕中间的提示视图,给用户展示信息,并让用户自己选择操作,UIActionS ...

  9. php 5.6 与之前版本不兼容中的数组属性定义辨析

    在php5.6官方文档的不兼容页(http://php.net/manual/zh/migration56.incompatible.php)中提到了几个与以前版本不兼容的情况,其中提到了为类定义数组 ...

随机推荐

  1. Microsoft.VisualC 命名空间包含支持用 c + + 语言的代码生成和编译的类。 混合编程中使用COM接口指针

    Microsoft.VisualC 命名空间包含支持用 c + + 语言的代码生成和编译的类. Microsoft.VisualC.StlClr Unmanaged Code 和 Managed Co ...

  2. [Flutter] Creating & Updating State in a Flutter Application

    To create a Stateful widget: 1. Create a StatefulWidget 2. Create a State class SGreeting extends St ...

  3. CentOS 7上安装Zabbix(高速安装监控工具Zabbix)

    前提要求(optional) 安装Zabbix监控工具前,先安装必要的执行工具包 yum install gcc gcc-c++ make openssl-devel curl wget net-sn ...

  4. Python 中实现装饰器时使用 @functools.wraps 的理由

    Python 中使用装饰器对在运行期对函数进行一些外部功能的扩展.但是在使用过程中,由于装饰器的加入导致解释器认为函数本身发生了改变,在某些情况下——比如测试时——会导致一些问题.Python 通过  ...

  5. Spring事务的传播行为 @Transactional

    Spring事务的传播行为http://blog.csdn.net/cuker919/article/details/5957209 在service类前加上@Transactional,声明这个se ...

  6. Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)(转)

    转自:http://blog.s135.com/nginx_php_v6/] 前言:本文是我撰写的关于搭建“Nginx + PHP(FastCGI)”Web服务器的第6篇文章.本系列文章作为国内最早详 ...

  7. 自己动手制作更好用的markdown编辑器-02

    这里文章都是从个人的github博客直接复制过来的,排版可能有点乱. 原始地址 http://benq.im 文章目录 1. 工具条 1.1. 样式 1.2. 工具条截图 2. 状态栏消息 3. 文件 ...

  8. SpringCloud系列七:使用Ribbon实现客户端侧负载均衡

    1. 回顾 在前面,已经实现了微服务的注册与发现.启动各个微服务时,Eureka Client会把自己的网络信息注册到Eureka Server上. 但是,在生成环境中,各个微服务都会部署多个实例,因 ...

  9. 2B01-View-Switcher

    Gallery和swithcer联合使用 /* * Copyright (C) 2007 The Android Open Source Project * * Licensed under the ...

  10. C++语言基础(14)-typeid

    typeid可用来判断类型是否相等: 例如有下面的定义: char *str; ; ; float f; 类型比较 结果 类型比较 结果 typeid(int) == typeid(int) true ...