我想创建一个应用程序,它包含表单子目录。在这里,我通过单一视图应用程序创建一个新项目。在这个firstViewController中我放了按钮并按下它,它重定向到secondViewController。
在这里,我有一个表格。并希望从用户和提交按钮获取数据我想将其重定向到thirdViewController并希望在thirdViewController上打印表单数据。
在firstViewController.m文件中,我写了
-(IBAction)nextVCButton:(id)sender
{
SecondViewController *tempView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
NSLog(@"name : %@",self.nameTextField.text);
tempView.fullName = self.nameTextField.text;
[tempView setFullName:self.fullName];
[self.view addSubview:tempView.view];
}
在SecondViewController.m文件中
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
NSLog(@"received info %@", [self.fullName description]);
self.nameLabel.text = [self.fullName description];
}
在日志中我得到(name :)值,但在secondViewController中收到的信息为null。
我通过使用xib文件来完成所有这些操作。没有使用故事板。
请帮我把这个表单数据传递给secondViewController。
感谢。
答案 0 :(得分:2)
抱歉,我无法理解你为什么要完成这两行代码:
tempView.fullName = self.nameTextField.text;
[tempView setFullName:self.fullName];
相反,
在Second View Controller的NSString
.h file
的属性
@property (nonatomic,retain) NSString *strFullName;
并在.m file
中合成。
@synthesize strFullName;
现在,
-(IBAction)nextVCButton:(id)sender
{
SecondViewController *tempView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
NSLog(@"name : %@",self.nameTextField.text);
tempView.strFullName = self.nameTextField.text;
[self.view addSubview:tempView.view];
}
答案 1 :(得分:1)
如果您想从一个视图控制器导航到另一个视图控制器,我认为您需要使用Navigation controller
。那么你需要在ThirdViewController
中合成iVar“fullName”。并保留SecondViewController
。
<强> 1。 ThirdViewController.h 强>
@property(nonatomic, retain) NSString *fullName;
<强> 2。 ThirdViewController.m 强>
@synthisize fullName;
dealloc {
[fullName release];
}
第3。 SecondViewController.m 强>
-(IBAction)nextVCButton:(id)sender
{
SecondViewController *tempView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
NSLog(@"name : %@",self.nameTextField.text);
tempView.fullName = self.nameTextField.text;
[tempView setFullName:self.fullName];
[self.view addSubview:tempView.view];
}
答案 2 :(得分:0)
尝试使用presentViewController方法而不是addSubview
....
-(IBAction)nextVCButton:(id)sender
{
SecondViewController *tempView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
NSLog(@"name : %@",self.nameTextField.text);
tempView.strFullName = self.nameTextField.text;
[self.view addSubview:tempView.view];
[self presentViewController:tempView animated:YES completion:nil];
}