我有两个课程,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中的数字。我不知道为什么它不起作用。有什么建议吗?
答案 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