iphone 使用委托(delegate)在不同的窗口之间传递数据
在IOS里两个UIView窗口之间传递参数方法有很多,比如
1.使用SharedApplication,定义一个变量来传递.
2.使用文件,或者NSUserdefault来传递
3.通过一个单例的class来传递
4.通过Delegate来传递。
前面3种方法,暂且不说,这次主要学习如何使用通过Delegate的方法来在不同的UIView里传递数据 。
比如: 在窗口1中打开窗口2,然后在窗口2中填入一个数字,这个数字又回传给窗口1。
窗口1
窗口2
窗口2的结果传递给窗口1
1.首先定义个一委托UIViewPassValueDelegate用来传递值
- (void)passValue:(NSString *)value;
@end
这个protocol 就是用来传递值
2.在窗口1的头文件里,声明delegate
#import "UIViewPassValueDelegate.h"
@interface DelegateSampleViewController : UIViewController <UIViewPassValueDelegate>
{
UITextField *_value;
}
@property(nonatomic, retain) IBOutlet UITextField *value;
- (IBAction)buttonClick:(id)sender;
@end
并实现这个委托
{
self.value.text = value;
NSLog(@"the get value is %@", value);
}
button的Click方法,打开窗口2,并将窗口2的delegate实现方法指向窗口1。
{
ValueInputView *valueView = [[ValueInputView alloc] initWithNibName:@"ValueInputView" bundle:[NSBundle mainBundle]];
valueView.delegate = self;
[self setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
[self presentModalViewController:valueView animated:YES];
}
第二个窗口的实现
.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实现文件
@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;
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code.
}
*/
@end
XCode项目文件下载
转载于:https://www.cnblogs.com/likwo/archive/2011/03/02/1968785.html
iphone 使用委托(delegate)在不同的窗口之间传递数据相关推荐
- VB如何在窗口之间传递数据?
有多种方法可以在窗口之间传递数据,比如: 1.在模块文件(Module)中声明一个全局公共变量,然后在其他窗体中就可以通过这个变量来存取数据了,如: 在模块文件中声明变量a Public a as s ...
- MFC不同窗口之间传递数据
一.全局变量法 1)先生成模态对话框. 主窗口 子窗口 2)在主窗口的按钮控件写如下代码 CString global_msg; void Cexample1Dlg::OnBnClickedButto ...
- PowerBuilder窗口之间传递多参数的方法
PowerBuilder窗口之间传递多参数的方法 http://www.21tx.com 2002年05月12日 Blog oceanaut 在PowerBuilder中函数OpenWithParm, ...
- C#中不同窗口之间传递值的两种方法
在.net中不同窗口之间传值有很多种不同的方法,这里给出两种比较常用的方法: 项目中有两个窗体,Form1和Form2,要实现的效果是点击Form1中的Button1按钮实现TextBox1和Text ...
- pyqt5窗口之间传递信号_PyQt5不同窗口之间的值传递
PyQt5 提供很多标准对话框, 这里主要讲自定义对话框怎么使用自定义信号来做消息传递 话不多说, 先上代码: from PyQt5.QtWidgets import QApplication, QW ...
- 窗口之间传递消息的一个方法
发送窗口的代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...
- Qt/C++主窗口和子窗口之间传递参数
一.用信号和槽 二.在主窗口声明一个子窗口的指针,用这个指针调用子窗口的函数 dialog *pic=new dialog(); pic->getColor(QColor col); col就可 ...
- pyqt5窗口之间传递信号_pyQT5 实现窗体之间传值的示例
准备 一个MainWindow和一个WidgetForm,总代码如下 # -*- coding: utf-8 -*- from PyQt5 import QtWidgets from main_win ...
- 安卓学习笔记07:事件处理、窗口跳转与传递数据
文章目录 零.学习目标 一.三个基本控件 1.标签控件(TextView) 2.编辑框控件(EditText) 3.按钮控件(Button) 二.安卓事件处理机制 (一)安卓事件处理概述 (二)安卓事 ...
最新文章
- windows 获取当前进程/线程的ID、句柄和内核地址
- [转载]玩转Asp.net MVC 的八个扩展点
- 【机器学习】scikit-learn 1.0 版本重要新特性一览
- 用python绘制好看的图形_如何使用Python绘制好word cloud,怎么,画出,好看,的,词,云图...
- Storm源码分析之四: Trident源码分析
- 《自卑与超越》读书笔记(part5)--如果教育者把性格和智力的发展都归之于遗传,那么教育就没有什么意义了
- matlab GUI——按下按钮在指定的坐标下绘制函数图像
- xss漏洞php注射实战,利用XSS渗透DISCUZ 6.1.0实战
- NOIP2011 选择客栈(洛谷P1311)
- Protobuf生成Go代码指南
- RFIC4463_F3CD
- java millis_Java Duration.getMillis方法代码示例
- 用java实现学生成绩管理系统_学生成绩管理系统(java实现)
- 网络存储 数据容灾 学习笔记4
- 上海“随申码”研发幕后::倒排期的3天!
- uniapp 微信小程序 分片 断点续传 大文件上传
- NLP情感分析——KNN算法
- 前端学习从入门到高级全程记录之8 (PS基本使用综合案例)
- Java埋码_oCPC JS SDK 基础代码安装指南
- 解决了联想i908手机SIM卡注册失败、受限服务的BUG
热门文章
- LIVE555再学习 -- testRTSPClient 实例
- zcmu2165(分组背包)
- 夏普电视android4.4.2,夏普电视怎么投屏 夏普电视投屏设置方法【详解】
- 【译】Jumping into Solidity —The ERC721 Standard (Part 1)
- mob sdk vue 短信验证_短信接口那些事儿,你知道多少?
- 两个软件相互交换数据_六轴算法机软件使用说明
- JZOJ 5354. 【NOIP2017提高A组模拟9.9】导弹拦截
- matlab cep,【CEP】重构和改进HelloInsightObservable
- 非确定性算法_带你从不同角度了解强化学习算法的分类
- python计算两个数乘积_如何用PYTHON使两个数字总和变成乘积