Передача поплавка между несколькими контроллерами представления - PullRequest
0 голосов
/ 21 сентября 2010

Я пытаюсь отправить float от одного viewcontroller к другому.

Хорошо, я попытался использовать 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 у меня есть float RWI;// @ синтезировать RWI;@synthesize Литры;@synthesize nameField, приветствие;

-(IBAction) updatePrefs:(id) sender
{   
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:nameField.text forKey:@"greeting"];
[prefs setFloat:20 forKey:@"Liters"];
[prefs synchronize]

Тогда для файла secondviewcontroller.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;  
}`

Почему мой float дает ошибки?Любая помощь будет оценена!:)

Ответы [ 2 ]

3 голосов
/ 21 сентября 2010

Ошибка, с которой вы столкнулись, связана с тем, что prefs НЕ является [NSUserDefaults standardUserDefaults], как это должно быть, потому что в вашем предыдущем утверждении вы делаете

NSString *prefs = 
[[NSUserDefaults standardUserDefaults] objectForKey:@"greeting"];

, поэтому prefs являетсяNSString объект.Вам нужно изменить

float Liters  = [prefs floatForKey:@"Liters"];

на

float Liters  = [[NSUserDefaults standardUserDefaults] floatForKey:@"Liters"];
0 голосов
/ 21 сентября 2010

Вы можете передать переменную с плавающей точкой из одного представления в другое, реализовав методы получения и установки в классе делегата.

В файле делегата .h

Включение делегата UIApplication

@interface DevAppDelegate : NSObject <UIApplicationDelegate>

float currentValue;

- (void) setCurrentValue:(float) currentValue;
- (float ) getCurrentValue; 

В классе реализации Delegate .m

-(void) setCurrentValue:(float) storydata{
currentValue = storydata;
}

-(float ) getCurrentValue{
return currentValue;
}

Таким образом, значение, которое вы оцениваете, устанавливается в currentValue с помощью метода setters и класса, где вы хотите получить значение, просто используйте метод getter.

Всего наилучшего

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...