ipa*_*tch 1 xcode textfield nsstring ios
好吧,我会尝试尽可能简单(当我试着问这个问题时,我好像在chat.stackoveflow.com上跑来跑去).我想将文本从一个viewcontroller中的textfield传递给另一个viewcontroller.
我应该使用Model类并将textfield.text存储在Model.[h/m]文件中,然后让第二个视图控制器访问存储在模型中的数据吗?
基本上这就是我所拥有的,
ViewControllerWelcome.h
@interface ViewControllerWelcome : UIViewController { }
@property (weak, nonatomic) IBOutlet UITextField *textFieldUsername;
Run Code Online (Sandbox Code Playgroud)
ViewControllerWelcome.m
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
ViewControllerHome *home = (ViewControllerHome *)[storyboard instantiateViewControllerWithIdentifier:@"Home"];
NSString *username = _textFieldUsername.text;
home.lblUSERNAME.text=username;
[self presentModalViewController:home animated:YES];
Run Code Online (Sandbox Code Playgroud)
ViewControllerHome.h
@interface ViewControllerHome : UIViewController {
NSString *username;
UILabel *lblUSERNAME;
}
@property (weak, nonatomic) IBOutlet UILabel *lblUSERNAME;
Run Code Online (Sandbox Code Playgroud)
ViewControllerHome.m
- (void)changeUSERNAME {
// get username from welcome tf
ViewControllerWelcome *welcome = [[ViewControllerWelcome alloc] init];
welcome.username = [self lblUSERNAME.text];
// _lblUSERNAME.text = welcome._textFieldUsername.text;
//welcome.textFieldUsername.text = _username;
// username = welcome.textFieldUsername.text;
NSLog(@"username = %@",username);
// welcome.textFieldUsername.text = _lblUSERNAME.text;
// NSLog(@"username = %@",welcome.textFieldUsername.text);
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我尝试了几种不同的东西,但无法提出一个可行的解决方案:-l
由于您使用的是Storyboard,因此使用Segues执行ViewControllers之间的转换更有意义.如果您不熟悉segues,可以在这里查看:
在IB中创建segue非常简单.完成设置后,即可实施
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender并配置目标视图控制器.所以你会得到类似的东西.
-(void)prepareForSegue(UIStoryboardSegue *)segue sender:(id)sender{
// Assume you have a viewHomeSegue defined that has the name of the segue you want to perform
NSString * segueIdentifier = [segue identifier];
if([segueIdentifier isEqualToString:viewHomeSegue]){
ViewControllerHome * homeController = (ViewControllerHome *)[segue destinationViewController];
homeController.lblUSERNAME.text = _textFieldUsername.text;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17297 次 |
| 最近记录: |