下面介绍一种原界面向目标界面传值 和 两种 由目标界面返回值给原界面的方法

界面解释:

a界面和b界面都在导航控制器中,

a界面触发时间跳转至b界面,b界面上设定完毕数据后返回a界面

a界面:原界面

b界面:目标界面

一. 像目标界面传值:

1.定义seque的标示

2.在原界面对象中利用prepareForSegue方法判断当前是seque的标示并获得目标界面的对象,像目标界面对象设定值

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
        // 时间选择seque定向
       if ([segue.identifier isEqualToString:@"DateSelecter"]) {
           TimeTableTableViewController *destViewController = segue.destinationViewController;
           destViewController.itemModel = self.itemModel;
    }
}

二.有目标界面返回值

第一种:利用Unwind方式

1.在原界面中定义Unwind方法:其中方法名称自己指定

- (IBAction)saveTime:(UIStoryboardSegue *)segue
{
    TimeTableTableViewController *source = [segue sourceViewController];
    ItemModel *item = source.itemModel;
    // 如果是nil则不做任何处理
    if (item == nil) {
        return;
    }

}

2. 在目标界面中按住ctl按键鼠标从controller图标(下图为时间设置图标)拖动至exit图标,然后选择对应Unwind方法

3.设定此seque的标示,此处为doneForTimeSelect

4. 在目标界面我们可能需要做一些检查然后才能返回值给原界面,所以新增触发检查的事件,入股通过则根据seque标示启动seque。

例如:这里一个按钮事件关联到save事件方法上

- (IBAction)save:(id)sender {
    NSString *message = [self.itemModel isDateInvaild];
    if (nil == message)
    {
        [self performSegueWithIdentifier:@"doneForTimeSelect" sender:self];
    }
    else
    {
        [Utils showMessage:message];
    }

}

第二种:利用协议

其实就是增加一个协议,在目标界面对象中利用此协议声明变量,然后在prepareForSegue方法中将整个原界面传给此变量,从而可以在目标界面对象中对原界面对象进行操作了。

sense之间的数据传输的更多相关文章

  1. 解析HTML、JS与PHP之间的数据传输

    在电商网站搭建过程中,前端经常会向后端请求数据,有时候通过HTML.JS和PHP文件的处理来实现数据的连通.通常情况下,用户在HTML中做关键字操作,JS对提交的表单进行数据处理,向后端发起ajax请 ...

  2. Pako.js压缩解压,vue压缩解压,前后端之间高效数据传输

    项目开发中常常会遇到前后端之间有大量数据传输占用带宽导致页面响应慢的问题,这时候我们可以考虑使用Pako.js对信息进行压缩之后传输. 我在前端使用的是vue-element-admin前端框架.框架 ...

  3. 用sessionStorage实现页面之间的数据传输

    1.sessionStorage主要含几种方法: //页面A:存放一个简单的字符串 sessionStorage.obj = '123'; //页面B:取到给obj var str = session ...

  4. 转:Java NIO系列教程(五) 通道之间的数据传输

    在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(译者注:channel中文常译作通道)传输到另外一个channel. transferFro ...

  5. Java基础知识强化之IO流笔记76:NIO之 Channel(通道)之间的数据传输

    1. 在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(译者注:channel中文常译作通道)传输到另外一个channel. (1)trans ...

  6. 在linux和本地系统之间进行数据传输的简单方法--lrzsz

    lrzsz是一款在linux里可代替ftp上传和下载的程序. >>提君博客原创  http://www.cnblogs.com/tijun/  << 提君博客原创 安装和使用非 ...

  7. Vuejs 用$emit 与 $on 来进行兄弟组件之间的数据传输

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. Java NIO系列教程(五) 通道之间的数据传输

    在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(译者注:channel中文常译作通道)传输到另外一个channel. transferFro ...

  9. JAVA-4NIO之Channel之间的数据传输

    转载:自并发编程网ifeve.com 在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(译者注:channel中文常译作通道)传输到另外一个c ...

随机推荐

  1. Vika and Segments - CF610D

    Vika has an infinite sheet of squared paper. Initially all squares are white. She introduced a two-d ...

  2. 【刷题】BZOJ 4827 [Hnoi2017]礼物

    Description 我的室友最近喜欢上了一个可爱的小女生.马上就要到她的生日了,他决定买一对情侣手 环,一个留给自己,一个送给她.每个手环上各有 n 个装饰物,并且每个装饰物都有一定的亮度.但是在 ...

  3. [Ahoi2005]COMMON 约数研究 【欧拉线性筛的应用】

    1968: [Ahoi2005]COMMON 约数研究 Time Limit: 1 Sec  Memory Limit: 64 MB Submit: 2939  Solved: 2169 [Submi ...

  4. LOJ 模拟赛

    1.LOJ 507 接竹竿 link dp[i]表示前i个的最大分数,所以dp[i]=max(dp[i-1],dp[j-1]+sum[i]-sum[j-1])   (color i ==color j ...

  5. 【learning】杜教筛求欧拉函数前缀和

    我们考虑利用\(\sum\limits_{d|n}\varphi(d)=n\)这一性质来处理这个问题 设\(f(n)=\sum\limits_{i=1}^{n}\varphi(i)\) 那么我们可以得 ...

  6. Javascript中的date对象和getTime()方法

    有些时候我们需要计算两个日期间的天数,或者小时数等等.下面用JavaScript实现这个需求,然后学习一下需要用到的一些JavaScript函数. JavaScript程序如下: 1 <scri ...

  7. node记录

    集中管理 require('sequelize'); require('node-schedule')

  8. [LeetCode] 13. Roman to Integer ☆☆

    Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 t ...

  9. js for等循环 跳出多层循环

    js for 循环 跳出多层循环 ,,,,,,,]; // 8个数 ,,,,,,,]; //8个数 testFor(); console.log(') function testFor() { ;k& ...

  10. iBATIS事务处理

    一:问题 最近发现了我们自己的项目的事务的处理根本就是行不通的,也因此我自己又去看了下有关事务的处理,算是有了个大致的了解吧,先说说我们最初的配置吧. 二:内容 (1):使用iBatis的事务管理 S ...