在iOS开发中或面试中,经常会遇到,两个或者多个控制器之间传值的问题 ,总结的集中方法仅供参考!

问题 :将B控制器中的textField 输入内容,传到A控制器中的label上显示出来,如何传值?

首先在storyboard中添加相关联的控制器(如下):

第一种方法: Block方法

1>在B控制器中定义一个block属性,这个block 是一个返回值为void,参数为NSString(传递textField的值)的block。
2>在B控制器的btw点击事件中,执行block,参数传self.textField.text.
3>在A控制器的-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender方法中 获取segue.destinationViewController,给它的block属性赋一段代码,这段代码就是将传过来的NSString 赋值给label

1》在Bcontroller.h中

2》在Bcontroller.m中

3》在Bcontroller.h中

4》在Bcontroller.m中

第二种方法:代理方法

1>在B控制器中定义协议方法,方法中要有NSString的参数,用来传递B控制器中textField的内容。(谁要传数据谁就定义协议,并添加代理属性).
2>在btn的点击事件中,执行代理的方法。传递参数进去,并且跳转到控制器A控制器.
3>在A控制器中的-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender方法中,设置代理,因为这个方法能获得B控制器,通过 segue.destinationViewController。
4>实现代理方法,将传过来的参数赋值给label。

1》在Bcontroller.h中

2》在Bcontroller.m中

3》在Acontroller.h中

4》在Acontroller.m中

第三种方式:通知方法

1>在B控制器中的btn点击方法中,发布一个通知UITextFieldTextDidEndEditingNotification。
2>在A控制器中添加self为观察者,监听UITextFieldTextDidEndEditingNotification通知,执行方法,方法中含有NSNotification的 参数,参数中就有B控制器中textField中text,赋值即可

1》在Bcontroller.h中

2》在Bcontroller.m中

3》在Acontroller.h中

4》在Acontroller.m中

第四种方法:用NSUserDefaults传值

在Bcontroller中

需要传值的地方编码

    //存储数据
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"A界面需要传递的值" forKey:@"自己的KEY"]; //设置同步
[defaults synchronize];

在Acontroller文件中

在ViewDidLoad中编码读取传递过来的值

    //读取A界面传递过来的值
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
self.userId = [defaults valueForKey:@"自己的KEY"];

iOS开发控制器之间传值的几种小方法的更多相关文章

  1. 【iOS开发-30】UITabBarController的几种代理方法以及结合NSUserDefaults还原上次退出时被选中视图控制器和视图控制器的顺序

    一.UITabBarController的几种代理方法 在AppDelegate.h中加入一个协议<UITabBarControllerDelegate>.然后再AppDelegate.m ...

  2. angular开发控制器之间的通信

    一.指令与控制器之间通信,无非是以下几种方法: 基于scope继承的方式 基于event传播的方式 service的方式(单例模式) 二.基于scope继承的方式: 最简单的让控制器之间进行通信的方法 ...

  3. iOS开发之动画编程的几种方法

    iOS开发之动画编程的几种方法 IOS中的动画总结来说有五种:UIView<block>,CAAnimation<CABasicAnimation,CATransition,CAKe ...

  4. android fragment传递参数_fragment之间传值的两种方法

    在Activity中加载Fragment的时候.有时候要使用多个Fragment切换.并传值到另外一个Fragment.也就是说两个Fragment之间进行参数的传递.查了很多资料.找到两种方法.一种 ...

  5. ASP.NET 页面之间传值的几种方式

    开篇概述 对于任何一个初学者来说,页面之间传值可谓是必经之路,却又是他们的难点.其实,对大部分高手来说,未必不是难点. 回想2016年面试的将近300人中,有实习生,有应届毕业生,有1-3年经验的,有 ...

  6. 【ASP.NET MVC系列】浅谈ASP.NET 页面之间传值的几种方式

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  7. MVC中控制器向视图传值的四种方式

    MVC中的控制器向视图传值有四种方式分别是 1 ViewDate  2.ViewBag   3.TempDate  4.Model 下面分别介绍四种传值方式 首先先显示出控制器中的代码 using S ...

  8. IOS开发中数据持久化的几种方法--NSUserDefaults

    IOS开发中数据持久化的几种方法--NSUserDefaults IOS 开发中,经常会遇到需要把一些数据保存在本地的情况,那么这个时候我们有以下几种可以选择的方案: 一.使用NSUserDefaul ...

  9. iOS开发 跳转场景的三种方式

    iOS开发 跳转场景的三种方式 2012年10月17日, 15:32 假设A跳转到B,三种方法:1.按住ctrl键,拖动A上的控件(比如说UIButton)到B上,弹出菜单,选择Modal.不需要写任 ...

随机推荐

  1. js_BOM_05

    1.下拉级联   |-select的API      |-如何获得选中的option?      |-如何创建option?      |-如何将option添加到select?      |-如何移 ...

  2. 万网免费主机wordpress快速建站教程-万网主机申请

    很多小伙伴在万网的免费主机申请活动中建立起了自己的个人网站,但还是还有许多小伙伴现在想建站,却发现官网找不到免费主机的申请地址了,以为活动结束了?其实还是可以继续申请免费主机的,接下来小编给大家介绍如 ...

  3. python的交代一

    把自己one note上面的摘抄和自己的节选,全部粘贴到博客了,时间宝贵,要得太多,技术栈要慢慢发展,python先放放了,也不知道什么时候正式捡起来. 先把目前养活自己的android.java.c ...

  4. ios Toll-Free Bridging

    有一些数据类型是能够在 Core Foundation Framework 和 Foundation Framework 之间交换使用的.这意味着,对于同一个数据类型,你既可以将其作为参数传入 Cor ...

  5. 将Cell中的视图取出传递到根视图

    当我们点击Cell中的某个图片时,图片会有一种从Cell中取出,放大,然后再回到原来的Cell中的效果.我的想法是:当Cell中的图片用button 来显示.当我们点击Cell中的这个button的时 ...

  6. O-C相关-08-动态类型与静态类型

    08-动态类型与静态类型 1, 什么是动态类型和静态类型 1) 动态语言 又叫动态编程语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化.比如众所周知的EC ...

  7. struts2自定义类型转换器

    首先,何为struts2的类型转换器? 类型转换器的作用是将请求中的字符串或字符串数组参数与action中的对象进行相互转换. 一.大部分时候,使用struts2提供的类型转换器以及OGNL类型转换机 ...

  8. 初次使用JFinal

    刚进公司的时候是经过了学员期培训,不断的学习. 终于有机会可以进入了项目组,一个给予.NET开发的项目,框架是MVC,三个多月的项目在一个团队的合作下完成了一个正式成为程序员后参与的第一个大型项目. ...

  9. java之sleep、wait、yield、join、notify乱解

    ① 这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类. sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用b的sleep方法,实际上还是 ...

  10. ASP.NET服务端基本控件介绍

    ASP.NET服务端基本控件介绍 大概分为三种控件: HTML控件,ASP.NET把HTML控件当成普通字符串渲染到浏览器端,不去检查正确性,无法在服务端进行处理ASP.NET服务端控件,经过ASP. ...