第1课的价值不在第2课

时间:2013-02-19 03:08:12

标签: ios objective-c xcode

我有两个课程,Step1和Step2。 Step1包含一个名为wrp的文本字段。当用户在Step1中输入wrp中的数字时,我希望能够在Step2中使用它。这是我尝试过的(这是Step2中的代码):

int AdditionalDays;

Step1ViewController *wrp1 = [Step1ViewController new];
UITextField *wrp = [wrp1 wrp];
AdditionalDays = [wrp.text intValue];

TotalTotal.text = [[NSString alloc] initWithFormat:@"%i", AdditionalDays];

应用程序不会抛出错误消息,但在Step2中忽略了步骤1中用户输入的wrp中的数字。我不知道为什么它不起作用。有什么建议吗?

3 个答案:

答案 0 :(得分:1)

因为你创建了一个新的Step1ViewController

答案 1 :(得分:0)

发生这种情况的原因是,在Step2中你说过:

Step1ViewController *wrp1 = [Step1ViewController new];
UITextField *wrp = [wrp1 wrp];

不幸的是,这并不是你想做的事情。你的应用程序不知道你要做什么,所以代码实际上做的是“请创建一个全新的Step1并创建一个全新的TextField,然后给我这个全新的空TextField的价值”。

不要进入Step2并向后工作以获取TextField,而是尝试进入Step1并将值传递给Step2。

答案 2 :(得分:0)

Step1ViewController *wrp1 = [Step1ViewController new];行中,您正在创建Step1ViewController的新实例。您需要的是获取对用户输入文本的原始Step1ViewController的引用。

为此,您可能会在Step2ViewController中创建一个属性,您可以在其中传入Step1ViewController,甚至更好地传入用户输入的值。

因此,在Step2ViewController类头中,添加如下属性:

@property (assign) int additionalDays;

然后,当您创建Step2ViewController以在屏幕上显示它时,您将此属性设置为用户输入的值,如下所示:

Step2ViewController *controller  = [Step2ViewController new];
controller.additionalDays = [wrp.text intValue];
// push the controller on a UINavigationController or something