zoukankan      html  css  js  c++  java
  • UIALertView的基本用法与UIAlertViewDelegate对对话框的事件处理方法

    首先,视图控制器必须得实现协议UIAlertViewDelegate中的方法,并指定delegate为self,才能使弹出的Alert窗口响应点击事件。

    具体代码如下:

     

    ViewController.h中的代码如下:

     

    #import <UIKit/UIKit.h>
    
    @interface ViewController : UIViewController<UIAlertViewDelegate>
    
    @end



     

     

    ViewController.m中的详细代码:

     

    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view from its nib
        
        //初始化AlertView
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"AlertViewTest"
                                                       message:@"message"
                                                      delegate:self
                                             cancelButtonTitle:@"Cancel"
                                             otherButtonTitles:@"OtherBtn",nil];
        //设置标题与信息,通常在使用frame初始化AlertView时使用
        alert.title = @"AlertViewTitle";
        alert.message = @"AlertViewMessage";
        
        //这个属性继承自UIView,当一个视图中有多个AlertView时,可以用这个属性来区分
        alert.tag = 0;
        //只读属性,看AlertView是否可见
        NSLog(@"%d",alert.visible);
        //通过给定标题添加按钮
        [alert addButtonWithTitle:@"addButton"];
        //按钮总数
        NSLog(@"number Of Buttons :%d",alert.numberOfButtons);
        //获取指定索引的按钮标题
        NSLog(@"buttonTitleAtIndex1:%@",[alert buttonTitleAtIndex:1]);
        NSLog(@"buttonTitleAtIndex2:%@",[alert buttonTitleAtIndex:2]);
        //获取取消按钮的索引
        NSLog(@"cancelButtonIndex:%d",alert.cancelButtonIndex);
        //获取第一个其他按钮的索引
        NSLog(@"firstOtherButtonIndex:%d",alert.firstOtherButtonIndex);
        //显示AlertView
        [alert show];
        [alert release];
    }
    
    #pragma marks -- UIAlertViewDelegate --
    //根据被点击按钮的索引处理点击事件
    -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
    {
        NSLog(@"clickButtonAtIndex:%d",buttonIndex);
    }
    
    //AlertView已经消失时执行的事件
    -(void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
    {
        NSLog(@"didDismissWithButtonIndex");
    }
    
    //ALertView即将消失时的事件
    -(void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex
    {
        NSLog(@"willDismissWithButtonIndex");
    }
    
    //AlertView的取消按钮的事件
    -(void)alertViewCancel:(UIAlertView *)alertView
    {
        NSLog(@"alertViewCancel");
    }
    
    //AlertView已经显示时的事件
    -(void)didPresentAlertView:(UIAlertView *)alertView
    {
        NSLog(@"didPresentAlertView");
    }
    
    //AlertView即将显示时
    -(void)willPresentAlertView:(UIAlertView *)alertView
    {
        NSLog(@"willPresentAlertView");
    }
    
    - (void)viewDidUnload
    {
        [super viewDidUnload];
        // Release any retained subviews of the main view.
        // e.g. self.myOutlet = nil;
    }
  • 相关阅读:
    用TPLINK 无线网卡设置无线工作环境
    ChartDirector与JFreeChart两款主要web图表工具调研报告
    发现奇怪的问题,TOMCAT居然跟本机网卡的DNS设置有关
    解决Oracle监听器服务不能启动的问题
    JAVA 调用 .NET写的WEBSERVICE
    Windows Forms 实现安全的多线程详解
    异步调用与多线程
    关于.NET异步调用的初步总结
    c#中的多线程同步
    WinForm界面开发
  • 原文地址:https://www.cnblogs.com/zxykit/p/5197856.html
Copyright © 2011-2022 走看看