- 浏览: 2965580 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (893)
- android (110)
- iphone (198)
- java (79)
- JavaScript手册-目录 (9)
- JavaScript手册-Array (19)
- JavaScript手册-Boolean (5)
- JavaScript手册-Date (50)
- JavaScript手册-Math (30)
- JavaScript手册-Number (14)
- JavaScript手册-RegExp (7)
- JavaScript手册-String (38)
- JavaScript手册-全局函数 (8)
- JavaScript实用脚本 (7)
- Others (21)
- java-jpcap (7)
- java-thread (1)
- ibm文章 (3)
- classloader (2)
- java-filter (2)
- 运行环境 (33)
- java-正则 (2)
- oracle (1)
- linux-shell (26)
- wap (1)
- sqlite (3)
- wow (1)
- jvm (1)
- git (5)
- unity3d (29)
- iap (2)
- mysql (23)
- nginx (14)
- tomcat (9)
- apache (2)
- php (1)
- ubuntu (40)
- rsa (1)
- golang (21)
- appstore (5)
- sftp (2)
- log4j (2)
- netty (18)
- 测试工具 (6)
- memcache (5)
- 设计模式 (1)
- centos (8)
- google_iab (5)
- iOS专题 (4)
- mac (10)
- 安装配置帮助手册 (2)
- im4java_graphicsmagick (5)
- inotify-tools (1)
- erlang (6)
- 微信支付 (1)
- redis (8)
- RabbitMQ (5)
最新评论
-
heng123:
Netty视频教程https://www.douban.com ...
netty4.0.23 初学的demo -
maotou1988:
使用Netty进行Android与Server端通信实现文字发 ...
netty4.0.23 初学的demo -
码革裹尸:
非常感谢,正好用上
android 呼入电话的监听(来电监听) -
rigou:
提示的/222.177.4.242 无法链接到ip地址,是什 ...
通过 itms:services://? 在线安装ipa ,跨过app-store -
duwanbo:
GridView与数据绑定
StoryBoard学习(5):使用segue页面间传递数据
函数:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
具体例子:
1.首先创建1个Single View模版项目,然后在MainStoryboard中添加1个新的ViewContronller。并在2个View Controller中添加标签、按钮、编辑输入框。
2. 将第1页和第2页建立segue。
选中第1页中的按钮[跳到第2页],鼠标右键(或按住Controll键,鼠标左键)拖拽到第2页后,放手,在弹出菜单上选择[modal]
3. 将第1页中的编辑输入框组件与class文件挂钩。
单独窗口打开MainStoryboard和ViewController.h文件,然后鼠标右键拖拽编辑输入框到.h文件中的@interface的下一行。
注意,编辑输入框组件的name属性这里设置为 page1Data
4.在ViewController.m中添加如下代码。
在@implementation之后添加:
@synthesize page1Data;
重载prepareForSegue方法:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ NSString* data = page1Data.text; UIViewController* view = segue.destinationViewController; if ([view respondsToSelector:@selector(setParam:)]) { [view setValue:data forKey:@"param"]; } }
注意:其中的setParam和param会和下面的代码进行关联!!
5.添加新类文件并绑定给第2页。
注意:Class名为 SecondViewController
将类SecondViewController绑定到第2页.
6.将第2页中的编辑输入框组件绑定到类SecondViewController中。
单独窗口打开SecondViewController.h和MainStoryboard,然后选中第2页中的编辑输入框,然后鼠标右键拖拽编辑输入框到SecondViewController.h文件中的@interface的下一行。
注意:绑定时编辑输入框组件的name属性设置为 page2Data。
7.修改SecondViewController的.h和.m文件。
7.1 修改SecondViewController.h
@interface SecondViewController : UIViewController之后添加:
@property (strong, nonatomic) NSString *param;
注意:这里定义的参数 param 必须和前面ViewController.m中的prepareForSegue方法中的param相同!!!
7.2 修改SecondViewController.m
在@implementation SecondViewController之后添加:
@synthesize param; @synthesize page2Data;
修改方法viewDidLoad:
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. page2Data.text=param; }
编译运行,当在第1页中输入参数,跳到第2页后可以显示第1页中输入的参数。
8. 给第2页中的按钮[关闭窗口]添加事件。
单独窗口打开SecondViewController.h和MainStoryboard,然后选中第2页中的按钮[关闭窗口],右键拖拽到SecondViewController.h中@interface SecondViewController : UIViewController之后;
在弹出窗口的Connection属性选择Action,Name属性设置为closeWin。然后点按钮[Connect]。
可以看到,在SecondViewController.h中增加了如下代码:
- - (IBAction)closeWin:(id)sender;
在SecondViewController.m中增加了如下代码:
- - (IBAction)closeWin:(id)sender {
- }
修改 SecondViewController.m中的closeWin方法,具体代码如下:
- (IBAction)closeWin:(id)sender { [self dismissViewControllerAnimated:YES completion:nil]; }
编译运行,当显示第2页后,点击[关闭窗口]按钮,即可关闭第2页,重新显示第1页。
接下来,要实现在第2页修改接收到的参数,然后将修改后的参数返回给第1页。
9. 修改 ViewController.h和.m文件内容。
9.1 ViewController.h
在 @interface ViewController : UIViewController 之后添加:
@property (strong,nonatomic) NSString* editData;
注意:定义的变量 editData 是用来接收 第2页编辑输入框的内容,在 SecondViewController.m会用到!!!
9.2 ViewController.m
在 @implementation ViewController 之后添加:
@synthesize editData;
修改方法 -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ NSString* data = page1Data.text; UIViewController* view = segue.destinationViewController; if ([view respondsToSelector:@selector(setParam:)]) { [view setValue:data forKey:@"param"]; } if ([view respondsToSelector:@selector(setFirstViewController:)]) { [view setValue:self forKey:@"firstViewController"]; } }
注意:其中的 setFirstViewController 和 firstViewController 在下面的 SecondViewController.h和.m中会定义!!!
重载方法 -(void)viewWillAppear:(BOOL)animated :
-(void)viewWillAppear:(BOOL)animated{ NSLog(@"viewWillAppear"); [super viewWillAppear:animated]; page1Data.text=editData; }
10. 修改 SecondViewController.h和.m文件内容。
10.1 SecondViewController.h
在 @interface SecondViewController : UIViewController 之后添加:
@property (strong,nonatomic) id firstViewController;
注意:变量名称 firstViewController必须和上面ViewController.m中相同!!!
10.2 SecondViewController.m
在 @implementation SecondViewController 之后添加:
@synthesize firstViewController;
重载方法 -(void)viewWillDisappear:(BOOL)animated
-(void)viewWillDisappear:(BOOL)animated{ [super viewWillDisappear:animated]; if ([firstViewController respondsToSelector:@selector(setEditData:)]) { [page2Data endEditing:YES]; [firstViewController setValue:page2Data.text forKey:@"editData"]; } }
注意:其中的 setEditData 和 editData 必须和上面 ViewController.h和.m中定义的相同!!!
OK,编译运行。第1页的输入文字会传递到第2页的输入框中,第2页的输入框文字在关闭窗口后同样会传递给第1页的输入框中。
发表评论
-
iOS程序运行生命周期
2015-11-10 09:05 966iOS程序运行生命周期 在文件AppDele ... -
iOS开发系列--IOS程序开发概览
2015-11-10 07:32 1181iOS开发系列--IOS程序开发概览 概览 ... -
2015年11月Xcode7.1(7B91b)打包发布苹果iOS应用指南
2015-11-09 18:29 108812015年11月Xcode7.1(7B91b) ... -
self.navigationController pushViewController执行不成功
2015-11-06 08:28 1613self.navigationControlle ... -
ios NSString format 保留小数点 float double
2015-11-05 17:37 2934ios NSString format 保留小数点 f ... -
自定义 URL Scheme 完全指南
2015-11-04 16:21 903自定义 URL Scheme 完全指南 转载 htt ... -
UIViewController生命周期方法viewDidLoad、viewWillAppear和viewDidAppear
2015-11-01 12:29 2953UIViewController生命周期 ... -
关于self.view.window与viewDidLoad、viewWillAppear、viewDidAppear
2015-11-01 09:36 2540关于self.view.window与viewD ... -
UIScreen学习记录
2015-10-31 08:18 1060UIScreen学习记录 转载自 ... -
使用NSTimer和CGAffineTransformMakeRotation实现旋转动画
2015-10-29 11:53 1826使用NSTimer和CGAffineTransform ... -
【原】iOSCoreAnimation动画系列教程(一):CABasicAnimation【包会】
2015-10-29 08:59 1026【原】iOSCoreAnimation动 ... -
iOS 在UILabel显示不同的字体和颜色
2015-10-27 08:07 1558在项目开发中,我们经常会遇到在这样一种情形:在一个UI ... -
UISlider滑动条的属性介绍以及于标签联合使用实时显示变动值
2015-10-27 08:06 1255UISlider滑动条的属性 ... -
关于使用DSLTableView下拉刷新数据遇到的问题
2015-10-23 21:17 942关于使用DSLTableView下 ... -
使用AdSupport.framework生成IDFA唯一标识符
2015-10-23 17:29 4709使用AdSupport.framework生成IDFA ... -
AppDelegate的详解
2015-10-22 17:51 680AppDelegate的详解 ... -
iOS开发问题集锦
2015-10-22 13:06 5291. Xcode开发连真机运行报错Please ver ... -
iOS 对象属性参数名定义的注意事项不能以alloc,new,copy,mutableCopy 作为开头命名
2015-10-21 15:41 1327property's synthesized g ... -
iOS-自定义的画圆或弧的UIView
2015-10-21 14:20 2655iOS-自定义的画圆或弧的UIView Cu ... -
iOS自定义的模态提示对话框
2015-10-20 14:27 6475iOS自定义的模态提示对话框 基本思路: 1.创建 ...
相关推荐
使用storyboard 的segue 从后向前进行传值
storyboard的unwind segue用法小结,博客文章:http://blog.csdn.net/kid_devil/article/details/23218195
ios7下storyboard的简单使用
iOS引入storyboard后,写控件再没有这么简单了。从前只写控件就需要好几页的代码,现在只需要简单的拖拽就实现了。不过,如果是在合作开发中,如果两个人同时修改同一个storyboard文件时,就会引起代码冲突,因此...
使用storyboard布局的TabbarViewController框架,包含多个storyboard,xib与storyboard混合使用,并提供两种侧滑返回上一个页面的方法。兼容iphone,ipad,支持ios6以上
列举了IOS StoryBoard传递参数的两种方法,包括使用prepareForSegue与广播两种方式
用storyboard开发了一个小的tableview的demo,供大家学习storyboard使用。
storyboard的使用范例,关键掌握跳转,赋值,跳回;
1.使用storyboard,可以更好地理解应用中所有视图在概念上的概览以及它们之间的关系。掌控所有的视图变得很容易,因为所有的设计都是在一个文件中,而不是在很多单独的nib文件中。 2.storyboard描述了视图之间的动画...
故事板样本[![CI 状态]( Linsin/storyboards-sample.svg?style=flat)]( Linsin/storyboards-sample )用法要运行示例项目, pod install克隆 repo,然后从 Example 目录运行pod install 。要求安装storyboards-sample...
UIScrollView-StoryBoard-AutoLayout 在 StoryBoard 和水平分页上使用 AutoLayout 的 UIScrollView 示例 滚动视图 gif
在Xcode5中用Storyboard构建一个包含3个标签页的标签栏多页面应用程序UI,在对应的博文中有详细的介绍:http://blog.csdn.net/vesper305/article/details/38781175
用Storyboard构建基于标签栏的多页面应用程序,同时简述了一下关于基于导航栏的多页面应用程序和基于标签栏的多页面应用程序的区别
Storyboard和XIB简单的混合使用
数据分析仪表板-StorBoard-R 此回购用于使用R与不同的图和图表进行的不同数据分析。 如何执行代码? 使用RStudio并打开RMD文件
Storyboard是一项令人兴奋的功能,在iOS5中首次推出,在开发app的界面时可以极大地节省时间。 如下图所示,这就是一个完整的应用的storyboard,接下来我们要学习如何通过这种方式创建应用。 现 ...
这个Demo只是简单的使用storyboard的跳转和传值
这是使用 Storyboard 和 Swift 在两个场景之间进行基本 Push segue 的示例。 标题栏已从导航控制器中删除,以便为静态合成提供完整的画布。 用于快速流程原型制作。 这个怎么运作 启用 unwind/back 功能需要将此 ...
一、使用Storyboard进行跳转 1)纯Storybard界面操作 2)使用代码进行跳转 二、Storyboard界面传值 1)使用prepareForSegue方法进行跳转: 2)Storyboard Id跳转
storyboard-fountain, 以最简单的方式为剧本创建 Storyboard 更新:从底层开始的新版本: ...喷泉喷泉Storyboard 喷泉使得你可以以轻松地画出一个剧本,你可以以快速绘制。 快速可视化以测试场景