【极客班】谈谈iOS中storyboard之间传值的问题

我还是基础薄弱啊,做作业的时候在storyboard之间传值这个地方卡住了,所以查了有关资料,总结如下:


案例:

将Page1ViewController1中textField1传送给Page2ViewController 中的textField2里

本次使用segue代理的方式

1)、在view controller2的Page2ViewController.h文件下设置一个NSString类型的变数,其目的是用来接收由页面 1 通过 Storyboard Segue 所传过来的信息:

@property (weak, nonatomic) NSString *PassedString;

2)、设定在view controller2加载的时候即将textField2的text设置为传递过来的PassedString

- (void)viewDidLoad

{

[superviewDidLoad];

textField2.text = PassedString;

}

3)、在view controller1的m文件中调用prepareForSegue:sender:方法将值传递给textField2

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

注:将page2设定成Storyboard Segue的目标UIViewController

id page2 = segue.destinationViewController;

注:将值通过Storyboard Segue带给页面2的string变量

[page2 setValue:textField1.textforKey:@"PassedString"];

}

4)、虽然做到上面这步已经可以正确传递值了,但是如果直接运行,会发现textField1的弹出框一旦弹出就无法关闭。所以还需要执行如下操作:

在storyboard中选中textField1,使用右键拖动的方式建立一个Action

然后将此方法在.m文件中实现出来

- (IBAction)closeTextField:(id)sender {

[sender resignFirstResponder];

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iOS 实战开发课程笔记 本贴旨在作为对极客班 《iOS 开发实战》第五期期课程视频重新学习的笔记。目标是建立一个...
    黄穆斌阅读 8,241评论 12 57
  • *7月8日上午 N:Block :跟一个函数块差不多,会对里面所有的内容的引用计数+1,想要解决就用__block...
    炙冰阅读 7,311评论 1 14
  • 前言 最近忙完项目比较闲,想写一篇博客来分享一些自学iOS的心得体会,希望对迷茫的你有所帮助。博主非科班出身,一些...
    GitHubPorter阅读 5,313评论 9 5
  • 开学三周了,感受到了倒春寒满满的恶意。不禁想起了我那暑假一般的寒假,那才真真称得上是春暖花开的日子呀。在一个阳光明...
    木棉同学阅读 2,778评论 7 5
  • 29/365 行动起来,成为你自己的英雄 一直以来,朋友圈的人,都很喜欢拍美颜。 觉得他们不敢直面素颜的自己,修行...
    梁超文阅读 1,527评论 0 2