2019独角兽企业重金招聘Python工程师标准>>>

ios页面间传递参数四种方式

1、使用SharedApplication,定义一个变量来传递.

2、使用文件,或者NSUserdefault来传递

3、通过一个单例的class来传递

4、通过Delegate来传递。

IOS开发使用委托delegate在不同窗口之间传递数据是本文要介绍的内容,主要是来讲解如何使用委托delegate在不同窗口之间传递数据,具体内容来看详细内容。在IOS开发里两个UIView窗口之间传递参数方法有很多,比如

前面3种方法,暂且不说,这次主要学习如何使用通过Delegate的方法来在不同的UIView里传递数据

比如: 在窗口1中打开窗口2,然后在窗口2中填入一个数字,这个数字又回传给窗口1。

窗口1

窗口2

窗口2的结果传递给窗口1

1、首先定义个一委托UIViewPassValueDelegate用来传递值

@protocol UIViewPassValueDelegate
- (void)passValue:(NSString *)value;
@end

这个protocol 就是用来传递值

2、在窗口1的头文件里,声明delegate

#import <UIKit/UIKit.h>
#import "UIViewPassValueDelegate.h"  @interface DelegateSampleViewController : UIViewController <UIViewPassValueDelegate> {  UITextField *_value;
}
@property(nonatomic, retain) IBOutlet UITextField *value;
- (IBAction)buttonClick:(id)sender;
@end

并实现这个委托

- (void)passValue:(NSString *)value
{  self.value.text = value;  NSLog(@"the get value is %@", value);
}

button的Click方法,打开窗口2,并将窗口2的delegate实现方法指向窗口1。

- (IBAction)buttonClick:(id)sender
{  ValueInputView *valueView = [[ValueInputView alloc] initWithNibName:@"ValueInputView" bundle:[NSBundle mainBundle]];  valueView.delegate = self;  [self setModalTransitionStyle:UIModalTransitionStyleCoverVertical];  [self presentModalViewController:valueView animated:YES];
}

第二个窗口的实现

.h 头文件

#import <UIKit/UIKit.h>
#import "UIViewPassValueDelegate.h"  @interface ValueInputView : UIViewController {  NSObject<UIViewPassValueDelegate> * delegate;  UITextField *_value;
}
@property(nonatomic, retain)IBOutlet UITextField *value;
@property(nonatomic, retain) NSObject<UIViewPassValueDelegate> * delegate;
- (IBAction)buttonClick:(id)sender;
@end

.m实现文件

#import "ValueInputView.h"  @implementation ValueInputView
@synthesize delegate;
@synthesize value = _value;
- (void)dealloc {  [self.value release];  [super dealloc];
}  - (IBAction)buttonClick:(id)sender
{  [delegate passValue:self.value.text];  NSLog(@"self.value.text is%@", self.value.text);  [self dismissModalViewControllerAnimated:YES];      }
- (void)didReceiveMemoryWarning {  // Releases the view if it doesn't have a superview.      [super didReceiveMemoryWarning];  // Release any cached data, images, etc. that aren't in use.  }  - (void)viewDidUnload {  [super viewDidUnload];  // Release any retained subviews of the main view.  // e.g. self.myOutlet = nil;  }  @end

转载于:https://my.oschina.net/u/2559341/blog/550113

界面之间是如何传值的相关推荐

  1. 使用代理进行界面之间的反向传值

    目标:在两个独立的控制器的界面之间进行反向传值 关键技术:代理 代码编写及运行环境:Xcode6.4 / 模拟器8.4 语言:Objective-C 注:使用纯代码实现,不使用xib/storyboa ...

  2. iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)

    使用Block的地方很多,其中传值只是其中的一小部分,下面介绍Block在两个界面之间的传值: 先说一下思想: 首先,创建两个视图控制器,在第一个视图控制器中创建一个UILabel和一个UIButto ...

  3. swift_004(Storyboard进行界面跳转及传值)

    Storyboard进行界面跳转及传值 方法一 // 方法一 跳转(不用连线) // 获取指定的Storyboard,name填写Storyboard的文件名 let mainStoryboard = ...

  4. iOS开发-使用Storyboard进行界面跳转及传值

    前言:苹果官方是推荐我们将所有的UI都使用Storyboard去搭建,Storyboard也是一个很成熟的工具了.使用Storyboard去搭建所有界面,我们可以很迅捷地搭建出复杂的界面,也就是说能为 ...

  5. pyqt登录界面跳转及传值给主界面

    pyqt登录界面跳转及传值给主界面 开头 最近要做一个应用,其中一个模块要管理表格数据,设置登录界面.目的是实现登录界面验证身份,而后登录主窗口,将登录用户名传递给主窗口.本来也可以通过登录窗口对数据 ...

  6. unity中的UI状态机,用于各界面之间的切换和跳转

    首先感谢姜雪松先生,大家可以去他的博客查看注释以及代码等,http://jxwgame.blog.51cto.com/943299/1613585 言归正传: 1.在开发项目的过程中,总是会遇到这样的 ...

  7. android脚步---不同界面之间切换

    对于一个app,可能需要多个界面,使用Button或者其他控件在不同界面之间切换,那么如何做到呢 首先必须明确,一般一个activity.java文件一般只对应一个界面即一个layout.xml文件, ...

  8. QT多界面之间数据传输

    前言 在Qt中,要在两个界面之间进行数据传输,有几种方法,我这里演示使用Qt的自定义信号来进行数据.程序的大概流程是,打开主界面,点击一个按钮,弹出子窗口,然后主窗口可以往子窗口发信息,子窗口也可以往 ...

  9. AbilitySlice之间的回传值

    今天我们介绍一下AbilitySlice之间的回传值,区别于之前的传递值,回传值的感念更加重要,下面开始今天的学习吧. AbilitySlice回传值 各个AbilitySlice之间除了可以传递值之 ...

最新文章

  1. 你知道这些 985、211 院校的隶属吗?
  2. 设计模式-创建型-单件
  3. 如何选择 WebClient HttpWebRequest HttpClient ?
  4. python中符号输入_Python基础(输入、运算符)
  5. 【Java】浅谈关键词transient的使用
  6. JS判断两种格式的输入日期的正确性
  7. python 给类添加属性_python – 如何动态添加属性到类中?
  8. Docker web管理界面——Shipyard
  9. 身为程序员的我们......
  10. SqlServer中查询某数据库所有表及其数据总条数和占用空间
  11. SteamSDK发布更新
  12. uniapp app中导出手机号码到通讯录
  13. 如何将ipad大文件传输到window PC
  14. UI基本控件(一):UIScrollView
  15. 基于主从博弈的智能小区代理商定价策略及电动汽车充电管理
  16. STM32F103RCT6实验代码之ADS1115的使用
  17. 2007年个人回忆与总结
  18. Lan9252-FPGA调试笔记
  19. No module named 'pandas.lib'
  20. linux sysctl常见用法

热门文章

  1. python 用两个栈实现一个队列
  2. python filter函数 字符串_Python数组条件过滤filter函数使用示例
  3. Docker知识6:实战!将一个tensorflow项目制作成Docker image
  4. 合成复用原则java实例_第7节 合成复用原则
  5. xshell连接服务器失败_xshell-ssh连接服务器被经常意外中断
  6. 不合法的偏移量 钉钉接口_钉钉服务端api接口使用
  7. springmvc如何使用视图解析器_SpringMVC的工作原理
  8. Vs2010 MFC 简单制作过程中的问题
  9. python利用管道popen调用.exe进行交互
  10. Caffe学习系列(14):初识数据可视化