UIAlertAction添加输入框

*  UIAlertController & UIAlertAction

 *  1. 在iOS8中,我们失去了两个非常简单的控件,那就是UIAlertView、UIActionSheet,取而代之的是UIAlertController和UIAlertAction

 *  2. 在iOS8中,UIAlertController控件使用两种样式代理题UIAlertView和UIActionSheet

 *  3. 意想不到的事情是UIAlertController的父类是UIViewController,所以要想显示出来不再是之前的show方法,而是使用推出模态视图的方式推出

 *  4. 在UIAlertController中,并没有按钮的添加,有的是Title和Message这样的信息显示,而按钮,则是放在UIAlertAction类中了

 *  5. 如果我们想要添加一个按钮,通过创建UIAlertAction对象进行添加,按钮的事件也不再使用代理方法,而是通过Block的方式,我们可以添加多个按钮

 *  6. 除此之外,UIAlertController也可以添加UITextField,UITextField的设置放在了Block内部,我们可以通过数组alertController.textFields来获取添加的输入框中的值,同样,输入框我们可以添加多个

 *  !!!7. !!!注意:输入框的添加只能在alertView样式下添加,如果是在actionSheet方式下添加,会造成运行时错误,所以在添加输入框前最好添加判断

 */

 

 

// 看下效果图

// 主要代码

#pragma mark 分段控制器事件

- (IBAction)segmentedControlAction:(UISegmentedControl *)sender

{

    

    // 1. 创建UIAlertControl变量,但并不穿GIAn

    UIAlertController *alertController = nil;

    

    

    // 2. 根据点击的item创建不同样式的alertController

    switch (sender.selectedSegmentIndex) {

        case 0: { // 弹出AlertView

            alertController = [UIAlertController alertControllerWithTitle:@"Title" message:@"Message" preferredStyle:UIAlertControllerStyleAlert];

            break;

        }

        case 1: { // 弹出ActionSheet

            alertController = [UIAlertController alertControllerWithTitle:@"Title" message:@"Message" preferredStyle:UIAlertControllerStyleActionSheet];

            break;

        }

        default:

            break;

    }

    

    

    // 3. 添加取消按钮

    // 3.1 UIAlertAction 表示一个按钮,同时,这个按钮带有处理事件的block

    UIAlertAction *action = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {

        NSLog(@"取消");

    }];

    // 3.2 添加到alertController上

    [alertController addAction:action];

    

    

    // 4. 添加需要谨慎操作的按钮,文字默认是红色的

    [alertController addAction:({

        UIAlertAction *action = [UIAlertAction actionWithTitle:@"谨慎操作的按钮" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {

            NSLog(@"谨慎操作的按钮");

        }];

        action;

    })];

    

    

    // 5. 添加确定按钮

    [alertController addAction:({

        UIAlertAction *action = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {

            NSLog(@"确定");

            

            // 打印输入框的用户名和密码

            NSString *userNameStr = [alertController.textFields[0] text];

            NSString *passwordStr = [alertController.textFields[1] text];

            NSLog(@"userName is: %@  password is: %@", userNameStr, passwordStr);

        }];

        action;

    })];

    

    

    // 6. 添加输入框到alertView中,注意,actionSheet是没有办法添加textField的,强行添加会Crash

    if (alertController.preferredStyle == UIAlertControllerStyleAlert) {

        // 添加用户名输入框

        [alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) {

            // 给输入框设置一些信息

            textField.placeholder = @"请输入用户名";

            textField.textAlignment = NSTextAlignmentCenter;

        }];

        // 添加密码输入框

        [alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) {

            textField.placeholder = @"请输入密码";

            textField.secureTextEntry = YES;

            textField.textAlignment = NSTextAlignmentCenter;

        }];

    }

    // 7. 显示(使用模态视图推出)

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

}

二。在AlertController中直接添加输入框

转载于:https://www.cnblogs.com/star001/p/5458131.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490803.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国家计划统筹布局哪些人工智能创新平台?

来源:智造智库建设布局人工智能创新平台,是强化对人工智能研发应用的基础支撑。未来,国家层面计划大力促进各类通用软件和技术平台的开源开放,且按照军民深度融合的要求和相关规定,推进军民共享共用。人工智能开源软硬…

install package vif包_2019-10-03【百宝箱】如何使用wireshark实时远程抓取openwrt路由器包...

前言经常遇到问题的时候需要抓取wifi数据包,常用的做法有三种:1、使用 专用网卡omnipeekwindows软件抓包2、使用 macbook pro的airtool软件抓包3、在路由器上使用tcpdump除了omnipeek 其他都不能实时操作。如何结合openwrt来达到远程实时抓包呢&#xff…

CNN中的卷积操作与权值共享

CNN中非常有特点的地方就在于它的局部连接和权值共享,通过卷积操作实现局部连接,这个局部区域的大小就是滤波器filter,避免了全连接中参数过多造成无法计算的情况,再通过参数共享来缩减实际参数的数量,为实现多层网络提…

python根据矩阵数值大小涂上不同深浅颜色

绘制矩阵颜色图 import matplotlib.pyplot as pltplt.matshow(np.random.rand(5,5), cmapplt.get_cmap(Greens), alpha0.5) # , alpha0.3 plt.show()

20150210--Smarty1-02

20150210--Smarty1-02 三、设计篇 1、Smarty注释 基本语法: {*注释内容*} 示例代码: 2、Smarty中的变量 1)从PHP中分配的变量(普通的变量、数组、对象) 基本语法: $smarty->assign(); 示例代码: demo02.php demo02.html 运行效…

python 绘制时频图 plt.specgram

时频图以横轴为时间,纵轴为频率,用颜色表示幅值。在一幅图中表示信号的频率、幅度随时间的变化 matplotlib.pyplot.specgram(x, NFFTNone, FsNone, FcNone, detrendNone, windowNone, noverlapNone, cmapNone, xextentNone, pad_toNone, sidesNone, s…

UserWarning: The default mode, 'constant', will be changed to 'reflect'

问题:UserWarning: The default mode, constant, will be changed to reflect in skimage 0.15. warn("The default mode, constant, will be changed to reflect in " skimage.transform.resize(image, output_shape, order1, modeNone, cval0, clipT…

华为鸿蒙系统四大特性:基于微内核,面向全场景,分布式架构

来源:今日头条8月9日,在广东东莞召开的华为开发者大会上,华为正式发布了自研操作系统:鸿蒙OS。据华为消费者业务CEO、华为技术有限公司常务董事余承东介绍,鸿蒙OS是基于微内核的面向全场景的分布式操作系统。随着华为全…

HTML5 音频视频

audio 元素能够播放声音文件或者音频流。 <!DOCTYPE html> <html> <head lang"en"><meta charset"utf-8"><title>HTML5 音频播放</title> </head> <body><!-- audio&#xff08;音频&#xff09;contr…

VM虚拟机中 localhost login_UTM 2.0 虚拟机来了,解决上网和无声音问题

今天主要讲一下UTM虚拟机&#xff0c;如果你对UTM这款APP不太熟悉&#xff0c;我在这里大致讲一下&#xff0c;这款应用工具&#xff0c;它可以安装在 iPad 和 iPhone 上刷入电脑系统&#xff0c;举例子&#xff1a;在UTM中刷入win7系统。甚至还能刷入 Android 安卓系统&#x…

python计算ROC曲线和面积AUC

ROC曲线是根据一系列不同的二分类方式&#xff08;分界值或决定阈&#xff09;&#xff0c;以真正率&#xff08;也就是灵敏度&#xff09;&#xff08;True Positive Rate,TPR&#xff09;为纵坐标&#xff0c;假正率&#xff08;1-特效性&#xff09;&#xff08;False Posit…

python from __future__ import division

python from __future__ import division 之前一直很困惑&#xff0c;为什么这个模块叫future呢&#xff0c;难道有什么特殊功能能够让人们想到未来吗&#xff0c;最近才恍然大悟。 python的更新和前进是由社区进行推动的&#xff0c;而且是免费开源的&#xff0c;不受大型…

【VS开发】CTimeSpan类

CTimeSpan类。 日期和时间类简介 CTime类的对象表示的时间是基于格林威治标准时间&#xff08;GMT&#xff09;的。CTimeSpan类的对象表示的是时间间隔。 CTime类和CTimeSpan类一般不会被继承使用。两者对象的大小都是8个字节。 CTime表示的日期上…

搅动世界的两大因素

原创&#xff1a;张晓峰提要&#xff1a;移动互联、云计算、大数据、人工智能等技术因素逐步成为新基础设施&#xff0c;而泛连接、泛共享、泛融合与泛协同为代表的非技术因素正在重构这个世界。二者叠加融汇、相因相生。每个人都渐进或主动或被动地“被”函数化、数字化、孪生…

python计算PR曲线sklearn.metrics.precision_recall_curve

PR曲线实则是以precision&#xff08;精准率&#xff09;和recall&#xff08;召回率&#xff09;这两个为变量而做出的曲线&#xff0c;其中recall为横坐标&#xff0c;precision为纵坐标。设定一系列阈值&#xff0c;计算每个阈值对应的recall和precision&#xff0c;即可计算…

amigo幸运字符什么意思_转载 | 史上最全 python 字符串操作指南

点击蓝字关注&#xff0c;创智助你长姿势【本文已由 清风Python 授权转载(原创)作者&#xff1a;王翔&#xff0c;转载请联系出处】字符串的定义完了&#xff0c;估计很多人看到这个标题就要关网页了&#xff0c;稍等不妨再往下看看&#xff1f;python 定义字符、字符串没有 j…

在物理学的语言里,“生命”是什么?

转自&#xff1a;Darthusian“想象一种语言就像想象一种形式的生命。”--- 路德维希.维特根斯坦&#xff0c;《哲学研究》当今世界人们使用大约6,800种不同的语言。不是每个词都能在不同的语言之间完美地翻译&#xff0c;意义有时会落入语义的裂缝。例如&#xff0c;日语词wabi…

HTML5中的时间类型,另外EL表达式的时间值来读取时间,并且还可以更改时间

HTML5规范里只规定date新型input输入类型&#xff0c;并没有规定日历弹出框的实现和样式。所以&#xff0c;各浏览器根据自己的设计实现日历。目前只有谷歌浏览器完全实现日历功能。相信这种局面很快就会结束&#xff0c;所有的浏览器最终都将会提供原生的日历组件。 如果你使用…

python 中 yield 的使用

python中yield在函数中的使用 正是因为函数含有这个yield&#xff0c;所以&#xff0c;该函数不再是普通的函数&#xff0c;而是生成器函数&#xff08;generator function&#xff09;。下面通过小例子来说明一下这个内置函数的特性&#xff1a; 1、直接运行函数并不会执行。…

支付接口申请_2020新版去水印小程序搭建教程(附源码+对接支付)

可以设置小程序跳转&#xff0c;引流也不错支持小程序后台流量主激励视频广告用户下载一次观看一次视频广告&#xff0c;收入非常可观支持小程序后台流量主banner广告支持全网短视频解析&#xff0c;苹果安卓通用支持后台无限生成卡密支持自定义文字广告支持图片广告支持小程序…