2

我想做一个应用程序,它包括表单提交。在此我通过单视图应用程序创建一个新项目。在这个 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 中收到的信息为空。

我通过使用 xib 文件来完成这一切。没有使用情节提要。

请帮我将此表单数据发送到 secondViewController。

谢谢。

4

3 回答 3

2

对不起,我不明白你为什么做了这两行代码:

tempView.fullName = self.nameTextField.text;
[tempView setFullName:self.fullName];

相反,NSString在 Second View Controller 中创建一个属性.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];
}
于 2013-06-17T05:49:56.097 回答
1

Navigation controller如果你想从一个视图控制器导航到另一个视图控制器,我认为你需要使用。那么在这里你需要做属性合成 iVar "fullName" in ThirdViewController. 并保留 中的值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];
}
于 2013-06-17T05:50:16.730 回答
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];
}
于 2013-06-17T05:58:33.487 回答