在多个视图控制器之间传递浮动
我试图将浮动从一个视图控制器发送到另一个视图控制器。
好吧,我尝试使用 NSUserDefaults 来解决这个问题。首先,我用一根绳子测试了它,它起作用了,但现在我正在努力用我的浮标做同样的事情。任何帮助将不胜感激! :) 这是我的代码
在我的firstviewcontroller.h文件中我有
IBOutlet UITextField *nameField;
IBOutlet UILabel *greeting;
float RWI;
float Liters;
@property(nonatomic) float *Liters;`
@property(nonatomic, retain); IBOutlet UILabel *greeting;
@property(nonatomic, retain) IBOutlet UITextField *nameField;
-(IBAction) updatePrefs:(id) sender; @property(nonatomic) float *RWI; `
在我的.m文件中我有 浮动 RWI; //@synthesize RWI; @合成升; @synthesize nameField,问候语;
-(IBAction) updatePrefs:(id) sender
{
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:nameField.text forKey:@"greeting"];
[prefs setFloat:20 forKey:@"Liters"];
[prefs synchronize]
然后对于第二个viewcontroller.h文件
IBOutlet UILabel *greeting;
float *Liters;
}
@property(nonatomic, retain) IBOutlet UILabel *greeting;
@end`
在我的.m文件中
@implementation secondviewcontroller
@synthesize greeting;
@synthesize Liters;
- (void)viewDidLoad {
[super viewDidLoad];NSString *prefs =
[[NSUserDefaults standardUserDefaults] objectForKey:@"greeting"];
float Liters = [prefs floatForKey:@"Liters"];
greeting.text = prefs;
}`
为什么我的浮动会出错?任何帮助将不胜感激! :)
Im trying to send a float from one viewcontroller to another.
Ok Ive tried using NSUserDefaults to go about this. First I tested it with a string and it worked, but now I'm struggling to do the same with my float. Any help would be appreciated! :) Heres my code
In my firstviewcontroller.h file i have
IBOutlet UITextField *nameField;
IBOutlet UILabel *greeting;
float RWI;
float Liters;
@property(nonatomic) float *Liters;`
@property(nonatomic, retain); IBOutlet UILabel *greeting;
@property(nonatomic, retain) IBOutlet UITextField *nameField;
-(IBAction) updatePrefs:(id) sender; @property(nonatomic) float *RWI; `
In my .m file I have
float RWI;
//@synthesize RWI;
@synthesize Liters;
@synthesize nameField,greeting;
-(IBAction) updatePrefs:(id) sender
{
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:nameField.text forKey:@"greeting"];
[prefs setFloat:20 forKey:@"Liters"];
[prefs synchronize]
Then for the secondviewcontroller.h file
IBOutlet UILabel *greeting;
float *Liters;
}
@property(nonatomic, retain) IBOutlet UILabel *greeting;
@end`
In my .m file
@implementation secondviewcontroller
@synthesize greeting;
@synthesize Liters;
- (void)viewDidLoad {
[super viewDidLoad];NSString *prefs =
[[NSUserDefaults standardUserDefaults] objectForKey:@"greeting"];
float Liters = [prefs floatForKey:@"Liters"];
greeting.text = prefs;
}`
Why does my float give errors? Any help would be appreciated! :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您遇到的错误是由于
prefs
不是应有的[NSUserDefaults standardUserDefaults]
,因为在您之前的语句中您这样做,因此,
prefs
是一个NSString
对象。您需要修改为
The error you are experienced is due to the fact that
prefs
is NOT[NSUserDefaults standardUserDefaults]
as it should be, because in your previous statement you dotherefore,
prefs
is aNSString
object. You need to modifyto
您可以通过在委托类中实现 getter 和 setter 将浮点变量从一个视图传递到另一个视图。
在 delegate .h 文件中
包含 UIApplication delegate
在 Delegate 实现类 .m 中,
因此您要评估的值是通过 setters 方法和您想要值的类在 currentValue 中设置的,只需使用 getter 方法即可。
一切顺利
You can pass a float variable from one view to another view by implementing getter and setters in the delegate class.
In delegate .h file
Include UIApplication delegate
In Delegate implementation class .m
So the value you to assess is set in the currentValue by setters method and class where you want the value ,just use the getter method.
All the best