【极客班】谈谈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中storyboard之间传值的问题)