我还是基础薄弱啊,做作业的时候在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];
}