• IOS 弹框AlterView的使用(IOS8.0以前使用)UIAlertController(IOS9.0使用)


    #pragma mark - 代理方法
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
        // 1.取得被点击这行对应的模型
        MJHero *hero = self.heros[indexPath.row];
        
        // 弹框
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"数据展示" message:nil delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
        
        // 设置对话框的类型
        alert.alertViewStyle = UIAlertViewStylePlainTextInput;
        
        // 取得唯一的那个文本框,显示英雄的名称
        [alert textFieldAtIndex:0].text = hero.name;
        
        [alert show];
        
        // 绑定行号到alertView上
        alert.tag = indexPath.row;
    }
    
    #pragma mark - alertView的代理方法
    /**
     *  点击了alertView上面的按钮就会调用这个方法
     *
     *  @param buttonIndex 按钮的索引,从0开始
     */
    - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
    {
        if (buttonIndex == 0) return;
        
        // 按钮的索引肯定不是0
        
        // 1.取得文本框最后的文字
        NSString *name = [alertView textFieldAtIndex:0].text;
    //    int row = alertView.tag;
    //    NSIndexPath *path = [NSIndexPath indexPathForRow:row inSection:0];
    //    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:path];
    //    cell.textLabel.text = name;
        
        // 2.修改模型数据
        int row = alertView.tag;
        MJHero *hero = self.heros[row];
        hero.name = name;
        
        // 3.告诉tableView重新加载模型数据
        // reloadData : tableView会向数据源重新请求数据
        // 重新调用数据源的相应方法取得数据
        // 重新调用数据源的tableView:numberOfRowsInSection:获得行数
        // 重新调用数据源的tableView:cellForRowAtIndexPath:得知每一行显示怎样的cell
        // 全部刷新
    //    [self.tableView reloadData];
        
        // 局部刷新
        NSIndexPath *path = [NSIndexPath indexPathForRow:row inSection:0];
        [self.tableView reloadRowsAtIndexPaths:@[path] withRowAnimation:UITableViewRowAnimationBottom];
    }

    IOS 9.0以上用UIAlertController 代替UIAlertView(实例转载)

    - (void)viewDidLoad {
        [super viewDidLoad];
        // 创建一个BUTTON 点击显示弹框
        UIButton *button = [UIButton buttonWithType:(UIButtonTypeCustom)];
        button.frame = CGRectMake(100, 100, 100, 100);
        // 给BUTTON 添加点击方法
        [button addTarget:self action:@selector(actionButton:) forControlEvents:(UIControlEventTouchUpInside)];
        button.backgroundColor = [UIColor blueColor];
        [self.view addSubview:button];
    }
    // button的点击方法
    - (void)actionButton:(UIButton *)button
    {
        // 初始化一个一个UIAlertController
        // 参数preferredStyle:是IAlertController的样式
        // UIAlertControllerStyleAlert 创建出来相当于UIAlertView
        // UIAlertControllerStyleActionSheet 创建出来相当于 UIActionSheet
        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"提示" message:@"" preferredStyle:(UIAlertControllerStyleAlert)];
    
        // 创建按钮
        UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"确定" style:(UIAlertActionStyleDefault) handler:^(UIAlertAction *action) {
            NSLog(@"注意学习");
        }];
        // 创建按钮
        // 注意取消按钮只能添加一个
        UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:(UIAlertActionStyleCancel) handler:^(UIAlertAction *action) {
        // 点击按钮后的方法直接在这里面写
            NSLog(@"注意学习");
        }];
    
    //    // 创建警告按钮
    //    UIAlertAction *structlAction = [UIAlertAction actionWithTitle:@"警告" style:(UIAlertActionStyleDestructive) handler:^(UIAlertAction *action) {
    //        NSLog(@"注意学习");
    //    }];
    //
        // 添加按钮 将按钮添加到UIAlertController对象上
        [alertController addAction:okAction];
        [alertController addAction:cancelAction];
        //[alertController addAction:structlAction];
    
        // 只有在alert情况下才可以添加文本框
        [alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) {
            textField.placeholder = @"用户名";
            textField.secureTextEntry = YES;
        }];
    
    //    // 取出文本
    //    UITextField *text = alertController.textFields.firstObject;
    //    UIAlertAction *action = alertController.actions.firstObject;
    
        // 将UIAlertController模态出来 相当于UIAlertView show 的方法
        [self presentViewController:alertController animated:YES completion:nil];
    }
    View Code
  • 相关阅读:
    如何面试你的面试官
    给老婆的一篇文章
    机器学习:选对时机直线超车
    面试技巧:带走面试官的节奏
    微信红包的随机算法是怎样实现的?
    全栈技术导图
    AI时代:推荐引擎正在塑造人类
    冲顶大会APP技术选型及架构设计
    多域名解析及延伸知识点
    在编程中为所欲为[圣诞版]
  • 原文地址:https://www.cnblogs.com/liuwj/p/6435284.html
Copyright © 2020-2023  润新知