UIActionSheet

#import "FirstViewController.h"

@interface FirstViewController ()<UIActionSheetDelegate,UIAlertViewDelegate>
@property (retain, nonatomic) IBOutlet UILabel *aLabel;
@property (retain, nonatomic) IBOutlet UITextField *textField;
@end
@implementation FirstViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
}
- (IBAction)upButton:(UIButton *)sender {

    //UIActionSheet

    UIActionSheet *sheet = [[UIActionSheet alloc]initWithTitle:@"选择" delegate:self cancelButtonTitle:@"取消按钮" destructiveButtonTitle:@"确认按钮" otherButtonTitles:nil, nil];
    sheet.actionSheetStyle = UIActionSheetStyleBlackOpaque;
//      更改标题
    sheet.title = @"请点击您的选择";
//    添加按钮
    //添加的按钮位置从第三个算起
    [sheet addButtonWithTitle:@"添加的按钮"];
    //红色按钮位置
    sheet.destructiveButtonIndex = 0;
    [sheet showInView:self.view];
    [sheet release];

    //UIAlertView

    //一般来说,根据苹果官方制定的《iOS 用户界面指南》,在拥有两个按钮的对话框中,您应当将取消按钮放在左边
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"提示" message:@"是否已满十八岁?"  delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
        alert.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;
    //UIAlertViewStyleDefault 默认风格,无输入框
    //UIAlertViewStyleSecureTextInput 带一个密码输入框
    //UIAlertViewStylePlainTextInput 带一个文本输入框
    //UIAlertViewStyleLoginAndPasswordInput 带一个文本输入框,一个密码输入框
    [alert show];
    [alert release];
}

第一种 ActionSheet单独使用

//第一种 ActionSheet单独使用
//接收ActionSheet点击事件
//该方式由UIActionSheetDelegate协议定义,点击ActionSheet的按钮后自动执行
- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex{

    switch (buttonIndex) {
        case 0:
            self.aLabel.text = self.textField.text;
            break;
        case 1:
            break;
        case 2:
            NSLog(@"让你点你还真点");
            break;
        default:
            break;
    }

}

第二种,单独使用UIAlertView

//接收UIAlertView点击事件
-(void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{

    switch (buttonIndex) {
        case 0:
            break;
        case 1:
            self.aLabel.text = self.textField.text;
            break;
        default:
            break;
    }

}

第三种混合使用

- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex{

     NSString *string=[NSString stringWithFormat:@"你选择了 %@",[actionSheet buttonTitleAtIndex:buttonIndex]];

    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"输入账户和密码" message:string  delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
    alert.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;
    //UIAlertViewStyleDefault 默认风格,无输入框
    //UIAlertViewStyleSecureTextInput 带一个密码输入框
    //UIAlertViewStylePlainTextInput 带一个文本输入框
    //UIAlertViewStyleLoginAndPasswordInput 带一个文本输入框,一个密码输入框

    switch (buttonIndex) {
        case 0:
            [alert show];
            break;
        case 1:
            break;
        default:
            break;
    }
     [alert release];

}
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
    //该方法由UIAlertViewDelegate协议定义,在点击AlertView按钮时自动执行,所以如果这里再用alertView来弹出提示,就会死循环,不停的弹AlertView
    //    NSString * string=[NSString stringWithFormat:@"你点击了 %@",[alertView buttonTitleAtIndex:buttonIndex]];
    NSString * string=[NSString stringWithFormat:@"你点击了 %@",[alertView buttonTitleAtIndex:buttonIndex]];

    switch (buttonIndex) {
        case 0:
            break;
        case 1:
            self.aLabel.text = self.textField.text;
            break;
        default:
            break;
    }

//    UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"提示" message:string delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil];
//        [alert show];
    NSLog(@"%@",string);
//    NSLog(@"输入 %@",[[alertView textFieldAtIndex:0] text]);
    //获取第一个文本框输入的文本,如果没有文件框,会异常,索引从0开始

}
<span style="background-color: rgb(255, 0, 0);"><span style="color:#99ff99;">最终效果:</span></span>

UIActionSheet,UIAlertView技术分享的更多相关文章

  1. fir.im Weekly - 新开发时代,需要什么样的技术分享

    "2016年,当我们迎来了如Xcode 8.Swift 3.SiriKit.Android N.Android Instant Apps.React Native等诸多移动开发技术.开发工具 ...

  2. 【转发】网易邮箱前端技术分享之javascript编码规范

    网易邮箱前端技术分享之javascript编码规范 发布日期:2013-11-26 10:06 来源:网易邮箱前端技术中心 作者:网易邮箱 点击:533 网易邮箱是国内最早使用ajax技术的邮箱.早在 ...

  3. CDN技术分享

    CDN技术分享目录 网络应用服务发展 CDN技术 1.CDN是什么?为什么我们需要它?(简介) 2.CDN能做什么?(作用) 3.CDN是如何工作?(原理) 4.CDN有那些具体应用?(应用) 我们项 ...

  4. 【转】apache kafka技术分享系列(目录索引)

    转自:  http://blog.csdn.net/lizhitao/article/details/39499283   估计大神会不定期更新,所以还是访问这个链接看最新的目录list比较好 apa ...

  5. 感知开源的力量-APICloud Studio开源技术分享会

    2014.9.15 中国领先的“云端一体”移动应用云服务提供商APICloud正式发布2015.9.15,APICloud上线一周年,迎来第一个生日这一天,APICloud 举办APICloud St ...

  6. HTML5学堂 全新的HTML5/前端技术分享平台

    HTML5学堂 全新的HTML5/前端技术分享平台 HTML5学堂是做什么的? HTML5学堂~http://www.h5course.com~由多名热爱H5的讲师们组成的一个组织.致力于构建一个前端 ...

  7. 内部技术分享的 PPT

    本文的基础是搞了一次内部的技术分享,在此也分享一下本次的PPT的一些内容.先列一下大概内容吧. EF-Code First API(WCF.WebAPI) Xaml MVVM AOP Xamarin. ...

  8. 恒天云技术分享系列5 – 虚拟化平台性能对比(KVM & VMware)

    恒天云技术分享系列:http://www.hengtianyun.com/download-show-id-14.html 概述 本性能测试报告将详细陈述各虚拟化平台基准性能测试的主要结论和详细结果. ...

  9. 恒天云技术分享系列4 – OpenStack网络攻击与防御

    恒天云技术分享系列:http://www.hengtianyun.com/download-show-id-13.html 云主机的网络结构本质上和传统的网络结构一致,区别大概有两点. 1.软网络管理 ...

随机推荐

  1. DecimalFormat(用于格式化十进制数字)

    1概念: DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字.该类设计有各种功能,使其能够分析和格式化任意语言环境中的数,包括对西方语言.阿拉伯语和印度语数 ...

  2. 小白的Python之路_day1

    Python 与 java 对比,代码更为简洁. Python 3.X 版本 Hello World 程序: print("Hello World!") java Hello Wo ...

  3. Android TextView常用属性

    [说明] TextView是用来显示文本的组件.以下介绍的是XML代码中的属性,在java代码中同样可通过 "组件名.setXXX()方法设置.如,tv.setTextColor(); [属 ...

  4. Linux 查看CPU温度

    安装 lm-sensors sudo apt-get install lm-sensors # 安装yes | sudo sensors-detect # 侦测所有感测器 sensors # 查看温度 ...

  5. python笔记一(语言简介、解释器、输入输出)

    一.python语言简介 一顿狂吹python目前有多火.多NB,哈哈哈,不过用起来心情确实很舒畅. 解释性语言:缺点,运行速度慢. 二.python解释器 与C.C++.java不同,以上都需要先将 ...

  6. 20160218.CCPP体系详解(0028天)

    程序片段(01):加法.c 内容概要:字符串计算表达式 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <st ...

  7. Github Atom开源文本代码编辑器- 由 Github 打造的下一代编程开发利器

    个人理解:Github 热度超凡的一个项目Atom,electron是整个atom的核心,对于electron可以理解成 electron =io.js + Chromium    通过 Electr ...

  8. Android源码浅析(五)——关于定制系统,如何给你的Android应用系统签名

    Android源码浅析(五)--关于定制系统,如何给你的Android应用系统签名 今天来点简单的我相信很多定制系统的同学都会有一些特定功能的需求,比如 修改系统时间 静默安装 执行某shell命令 ...

  9. pycallgraph 追踪Python函数内部调用

    安装 安装pycallgraph 安装依赖 使用 待测脚本 追踪脚本 追踪结果 高级篇 隐藏私密函数 控制最大追踪深度 总结 GitHub上好代码真的是太多了,名副其实的一个宝藏.但是最近自己也反思了 ...

  10. static 变量(静态变量)

    在C++的面向对象编程中,static还可以加在类的数据成员或成员函数之前.这样定义的数据成员或成员函数就被类所拥有,而不再属于类的对象. #include <iostream> usin ...