• 关于UITabView和UIAlertController,UIAlertAction以及UINavigation,值修改的传递
  • 集合嵌套集合的操作


  • 声明


  • 两个必须的的代理
  • 实现部分代码

- (void)viewDidLoad

{

[super viewDidLoad];

// 创建一个TabView

self.tabv = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStyleGrouped];

self.tabv.separatorColor = [UIColor blackColor];

self.tabv.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"44W58PICRtX_1024.jpg"]];

// 获取数据源

self.arriOSclass = [NSMutableArray array];

self.arriOSclass = [NSMutableArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"iOS_class" ofType:@"plist"]];

// 指定代理和数据源

self.tabv.delegate = self;

self.tabv.dataSource = self;

// 指定重用单元格的唯一标识:UITableView的唯一标识注册UITableViewCell

// - 重用cell而不是本身

[self.tabv registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cell"];

// 添加到主视图

self.navigationItem.title = @"iOS_class";

[self.view addSubview:self.tabv];

}

// 实现协议方法

// 确定显示的数量(数据源必须实现_1)

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{

// 选中集合

return [self.arriOSclass[section] count];

}

// 获取显示的内容(数据源必须实现_2)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

// 重用机制:单元格容量固定,仅仅是更换内容(队列)

// 存储一个唯一标识

static NSString *cellIdentity = @"cell";

// 根据tableView的唯一标识和数据分配UITableViewCell

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentity forIndexPath:indexPath];

// 在UITableViewCell内显示UITableView对应下标内容

// 使用简写

//    cell.textLabel.text = [[self.arriOSclass objectAtIndex:indexPath.section]objectAtIndex:indexPath.row];

// 选中部分是一个集合,它的row才是字符串

cell.textLabel.text = self.arriOSclass[indexPath.section][indexPath.row];

return cell;

}

// 代理方法:为数据分组(TabView的style为group)

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

{

return self.arriOSclass.count;

}

// 为分组命名

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

{

return [NSString stringWithFormat:@"第%lu组", section+1];

}

// 为选中数据添加弹窗

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{

// 先选择部分(下标)再选择个体(下标)

NSString *info = self.arriOSclass[indexPath.section][indexPath.row]

;

// 创建弹窗

UIAlertController *alertC = [UIAlertController alertControllerWithTitle:info message:@"确认修改吗" preferredStyle:UIAlertControllerStyleAlert];

// 添加确认动作

UIAlertAction *alercAOK = [UIAlertAction actionWithTitle:@"确认" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action)

{

// 推送到下一页修改值

PPViewController *ppVc = [PPViewController new];

[self.navigationController pushViewController:ppVc animated:YES];

// 没有切换效果?(模态视图具有)

ppVc.modalTransitionStyle = UIModalTransitionStylePartialCurl;

// 传递数据源中需要修改的索引过去

ppVc.name = info;

// 修改后返回该值:选择block进行操作

ppVc.ppblock = ^(NSString *name)

{

// 方法的回调:这个方法实际是在第二页面修改后才会调用该block

// 修改数组的地址

self.arriOSclass[indexPath.section][indexPath.row] = name;

// 修改后刷新数据返回时才能正常显示

[self.tabv reloadData];

};

}];

// 添加取消动作

UIAlertAction *alertACancel = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDestructive handler:nil];

// 动作添加到UIAlertController

[alertC addAction:alercAOK];

[alertC addAction:alertACancel];

// UIAlertController添加到当前控制器:即self

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

}


  • 传值详细解释


  • 传值页面的声明

  • 传值也面的实现

iOS关于UITabView和UIAlertController,UIAlertAction以及UINavigation,值修改的传递页面推送的更多相关文章

  1. IOS 在不打开电话服务的时候,可以响应服务器的推送消息,从而接收服务器的推送消息

    在做即时通讯(基于xmpp框架)的时候遇到这样一个问题,就是在真机测试的时候,你按Home键返回桌面,在你返回桌面的时候,这是你的程序的挂起状态的,在你挂起的时候, 相当于你的程序是死的,程序的所有进 ...

  2. IOS引导页拨动4张图片最后一张停三秒进入主页,页面推送

    // //  ViewController.m // // //  Created by 张艳锋 on 15/8/26. //  Copyright (c) 2015年 张艳锋. All rights ...

  3. iOS 推送全解析

    本文旨在对 iOS 推送(以下简称 推送)进行一个完整的剖析,如果你之前对推送一无所知,那么在你认真地阅读了全文后必将变成一个推送老手,你将会对其中的各种细节和原理有充分的理解.以下是 pikacod ...

  4. ThinkPHP 使用极光推送给ios推送消息

    HTML <div id="wrap"><a href="<{:U('Push/pushData')}>">推送</a ...

  5. (iOS)推送常见问题

    1.为什么启动的时候出现 Did Fail To Register For Remote Notifications With Error的错误程序运行的时候出现下面的错误信息: did Fail T ...

  6. 玩转 iOS 10 推送 —— UserNotifications Framework(合集)

    iOS 10 came 在今年 6月14号 苹果开发者大会 WWDC 2016 之后,笔者赶紧就去 apple 的开发者网站下载了最新的 Xcode 8 beta 和 iOS 10 beta,然后在自 ...

  7. ios 推送app badge 数字累加操作

    ios 推送app badge 数字累加操作: 一:此数字需要后台配合: 二:大致原理: 后台发推送时,第一次 传badge 为1,往后,依次累加操作即可: 当用户打开app时,app向后台发送请求, ...

  8. ios -- 极光推送《1》

    昨天公司项目要加入远程推送功能,自己做显然会很麻烦,所以用了极光的远程推送,下面我会讲如何制作推送证书并使用极光推送进行远程推送. 先讲讲怎么下载推送证书吧(前面的很简单要是知道的可以直接往下滑,简书 ...

  9. (转)OpenFire源码学习之十八:IOS离线推送

    转:http://blog.csdn.net/huwenfeng_2011/article/details/43458213 IOS离线推送 场景: 如果您有iOS端的APP,在会话聊天的时候,用户登 ...

随机推荐

  1. 好题 线段树对数据的保存+离线的逆向插入 POJ 2887

    题目大意:给一个字符串,有插入和询问操作,每次往一个位置插入一个字符或者询问第p个位置的字符是什么. 思路:我们离线询问,逆向把所有的字符都插入给线段树,然后再查询就好了,每次都要记得插入线段树的最后 ...

  2. centos mono

    wget http://download.mono-project.com/sources/mono/mono-4.0.1.tar.bz2wget http://download.mono-proje ...

  3. java问题诊断

    http://techblog.youdao.com/?p=961 http://linuxtools-rst.readthedocs.org/zh_CN/latest/advance/03_opti ...

  4. iOS View 模糊效果(毛玻璃)

    iOS View 模糊效果(毛玻璃)   相关资料 http://stackoverflow.com/questions/18404907/using-gpuimage-to-recreate-ios ...

  5. wpf中ListBox的选中项与ComboBox间的绑定

    产品类: public class Product:NotificationObject { private int productID; public int ProductID { get { r ...

  6. 学习笔记:GLSL Core Tutorial – Pipeline (OpenGL 3.2 – OpenGL 4.2)

    GLSL Core Tutorial – Pipeline (OpenGL 3.2 – OpenGL 4.2) GLSL 是一种管道,一种图形化的流水线 1.GLSL 的具体工作流程: 简化流程如下: ...

  7. JPA 系列教程6-单向多对多

    JPA中的@ManyToMany @ManyToMany注释表示模型类是多对多关系的一端. @JoinTable 描述了多对多关系的数据表关系. name 属性指定中间表名称 joinColumns ...

  8. python3 与 python2的 区别比较

    http://sebug.net/paper/books/dive-into-python3/porting-code-to-python-3-with-2to3.html

  9. RING0,RING1,RING2,RING3

    Intel的CPU将特权级别分为4个级别:RING0,RING1,RING2,RING3.Windows只使用其中的两个级别RING0和RING3,RING0只给操作系统用,RING3谁都能用.如果普 ...

  10. Loadrunner VuGen实战---基本组成、录制流程、协议、脚本优化、参数化(三)

    一.3大基本组件:VuGen.Controller.Analysis 1.VuGen:录制.编写脚本. 2.Controller:性能测试场景设计以及监控的地方. 3.Analysis:生成图表报告的 ...