0

我有两个课程,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];

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

4

3 回答 3

1

因为你创建了一个新的 Step1ViewController

于 2013-02-19T03:11:47.590 回答
0

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

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

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

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

于 2013-02-19T03:12:47.203 回答
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
于 2013-02-19T03:16:22.783 回答