Iphone 我在文本字段中输入的任何数字在标签中显示为0
我一直在用objective-c做一件事,但我是这门语言的初学者,我就是这么做的: 有一个名为“firstviewclass”的类,它位于我的第一个视图的控件中,在这个视图中有一个文本字段,用户可以输入一个数字。文本字段位于名为“setNumber”的firstviewclass.h中。另一个名为“secondviewclass”的类控制着第二个视图,在这个视图中,secondviewclass.h中有一个标签,我希望这个标签接收用户从第一个视图输入到textfield中的值,但是,当我在iOS模拟器上测试它时,我在文本字段中输入的任何数字都会显示在标签中为0。。。我真的不知道该怎么办 我的代码: firstviewclass.h:Iphone 我在文本字段中输入的任何数字在标签中显示为0,iphone,objective-c,ios,uitextfield,uilabel,Iphone,Objective C,Ios,Uitextfield,Uilabel,我一直在用objective-c做一件事,但我是这门语言的初学者,我就是这么做的: 有一个名为“firstviewclass”的类,它位于我的第一个视图的控件中,在这个视图中有一个文本字段,用户可以输入一个数字。文本字段位于名为“setNumber”的firstviewclass.h中。另一个名为“secondviewclass”的类控制着第二个视图,在这个视图中,secondviewclass.h中有一个标签,我希望这个标签接收用户从第一个视图输入到textfield中的值,但是,当我在iOS
#import <UIKit/UIKit.h>
@interface firstviewclass : UIViewController
@property (strong, nonatomic) IBOutlet UITextField *setNumber;
- (IBAction)gotonextview:(id)sender;
@end
#import <UIKit/UIKit.h>
#import "firstviewclass.h"
@interface secondviewclass : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *labelthatrecivesthetextfieldvalue;
@end
在secondviewclass的viewDidLoad中,您正在创建firstviewclass的新实例,然后访问标签的属性。由于您没有将其设置为任何值,因此它将始终返回零 您可以发布gotonextview方法的实现吗 编辑: 我认为您需要从第一个视图控制器设置label属性。因此,在gotonextview方法中,添加以下行:
secondviewclass.labelthatrecivesthetextfieldvalue.text = self.setNumber.text;
我承认我对您的命名方案有点迷茫,但这可能会奏效。在secondviewclass的viewDidLoad中,您正在创建firstviewclass的新实例,然后访问标签的属性。由于您没有将其设置为任何值,因此它将始终返回零 您可以发布gotonextview方法的实现吗 编辑: 我认为您需要从第一个视图控制器设置label属性。因此,在gotonextview方法中,添加以下行:
secondviewclass.labelthatrecivesthetextfieldvalue.text = self.setNumber.text;
我承认我对您的命名方案有点迷茫,但这可能会奏效。您是如何开始设置标签的?从
viewDidLoad
?如果是这样,那么0将是正确的,因为您没有将object.setNumber.text
设置为任何值。此外,您没有从第一个viewController中传递数据。您需要让第二个viewController知道数字是多少。请尝试在您的NSUserDefaults
中设置此值,然后在第二个viewController中,从默认值中加载该值。如何启动标签设置?从viewDidLoad
?如果是这样,那么0将是正确的,因为您没有将object.setNumber.text
设置为任何值。此外,您没有从第一个viewController中传递数据。您需要让第二个viewController知道数字是多少。尝试在NSUserDefaults
中设置此值,然后在第二个viewController中,从默认值加载该值。首先,我强烈建议不要命名属性或实例变量setSomething
。它会让任何阅读您的代码的人感到头疼,因为它看起来总是像您试图调用setter。此外,请务必将您的类名大写
您实际的问题是,在viewDidLoad
中,您正在创建firstviewclass
的实例,然后尝试从setNumber获取值。那是在用户有机会输入任何内容之前
另外,firstviewclass
中的setNumber
出口可能不会有任何用处,因为您自己正在实例化该类,而不是加载NIB
编辑(啊,故事板,哦): 对于情节提要,需要将setNumber文本字段的值传递给第二个视图 首先,删除
firstviewclass*对象=[[firstviewclass alloc]init]代码>行
然后,在第一个视图控制器的prepareforsgue
方法中,您可以将setNumber
文本字段的值传递给第二个视图控制器中的属性,并从那里使用它(例如,在configureView
中)
我建议,它准确地显示了你需要一步一步地做什么。您现在遇到的问题是将数据传递到下一个视图控制器。首先,我强烈建议不要命名属性或实例变量setSomething
。它会让任何阅读您的代码的人感到头疼,因为它看起来总是像您试图调用setter。此外,请务必将您的类名大写
您实际的问题是,在viewDidLoad
中,您正在创建firstviewclass
的实例,然后尝试从setNumber获取值。那是在用户有机会输入任何内容之前
另外,firstviewclass
中的setNumber
出口可能不会有任何用处,因为您自己正在实例化该类,而不是加载NIB
编辑(啊,故事板,哦):
对于情节提要,需要将setNumber文本字段的值传递给第二个视图
首先,删除firstviewclass*对象=[[firstviewclass alloc]init]代码>行
然后,在第一个视图控制器的prepareforsgue
方法中,您可以将setNumber
文本字段的值传递给第二个视图控制器中的属性,并从那里使用它(例如,在configureView
中)
我建议,它准确地显示了你需要一步一步地做什么。您现在遇到的问题是,将数据传递到下一个视图控制器。我使用的是故事板,因此实现中没有任何内容,它只会使用模式将用户从一个视图带到另一个视图。。。我希望你能理解,我不知道如何解释。当我这样做时,出现了一个错误:“类型为'secondviewclass'的对象上的属性'LabelHatRecivestheTextFieldValue'”我做错了什么?我使用的是故事板,所以实现中没有任何内容,它只会将用户从一个视图带到另一个视图,并使用模态。。。我希望你能理解,我不知道