我還是基礎(chǔ)薄弱啊,做作業(yè)的時(shí)候在storyboard之間傳值這個(gè)地方卡住了,所以查了有關(guān)資料,總結(jié)如下:
案例:
將Page1ViewController1中textField1傳送給Page2ViewController 中的textField2里
本次使用segue代理的方式
1)、在view controller2的Page2ViewController.h文件下設(shè)置一個(gè)NSString類型的變數(shù),其目的是用來(lái)接收由頁(yè)面 1 通過(guò) Storyboard Segue 所傳過(guò)來(lái)的信息:
@property (weak, nonatomic) NSString *PassedString;
2)、設(shè)定在view controller2加載的時(shí)候即將textField2的text設(shè)置為傳遞過(guò)來(lái)的PassedString
- (void)viewDidLoad
{
[superviewDidLoad];
textField2.text = PassedString;
}
3)、在view controller1的m文件中調(diào)用prepareForSegue:sender:方法將值傳遞給textField2
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
注:將page2設(shè)定成Storyboard Segue的目標(biāo)UIViewController
id page2 = segue.destinationViewController;
注:將值通過(guò)Storyboard Segue帶給頁(yè)面2的string變量
[page2 setValue:textField1.textforKey:@"PassedString"];
}
4)、雖然做到上面這步已經(jīng)可以正確傳遞值了,但是如果直接運(yùn)行,會(huì)發(fā)現(xiàn)textField1的彈出框一旦彈出就無(wú)法關(guān)閉。所以還需要執(zhí)行如下操作:
在storyboard中選中textField1,使用右鍵拖動(dòng)的方式建立一個(gè)Action
然后將此方法在.m文件中實(shí)現(xiàn)出來(lái)
- (IBAction)closeTextField:(id)sender {
[sender resignFirstResponder];
}