2010-09-21 83 views
0

使用制表符在两个视图控制器之间切换。在多个视图控制器之间传递浮点数

如何检索secondviewcontroller中的float,这是在firstviewcontroller中启动的?我应该做一些全局变量?我在哪里以及如何做到这一点?

谢谢你们:)

+0

在我的firstviewcontroller.h文件中,我有IBOutlet UILabel * greeti float RWI; float升; @property(nonatomic,retain); IBOutlet UILabel *问候; - (IBAction)updatePrefs:(id)sender; @property(nonatomic)float * RWI; @property(nonatomic)float * Liters; – anneke 2010-09-21 13:08:12

回答

0

全局变量是永远需要的,我会强烈建议使用一些消息传递模式,某事物SecondViewController和FirstViewController可以在他们改变对另一个感兴趣的任何东西时进行同步。 乍看之下,我只发现了这个指导http://www.informit.com/articles/article.aspx?p=1398611讲述可可中的消息传递模式,我猜iPhone已经有了样本实现。

0

使用的AppDelegate对于这

+(BOOL)SetData:(float)Value 
{ 
GlobalValue=Value; 
} 

+(float)ReturnData 
{ 
return GlobalValue; 
} 

和这样调用

[YourAppDelegate ReturnData]; 
+0

不知道这是否应该作为一个新的问题添加? 好吧我试过使用NSUserDefaults。首先我尝试了一个字符串,它的工作,现在我努力做到与浮法一样。 在我的firstviewcontroller.h中 'IBOutlet UITextField * nameField; IBOutlet UILabel *问候; float RWI; float升; @property(nonatomic)float * Liters;' @property(nonatomic,retain); IBOutlet UILabel *问候; @property(nonatomic,retain)IBOutlet UITextField * nameField; - (IBAction)updatePrefs:(id)sender; @property(nonatomic)float * RWI; ' – anneke 2010-09-21 13:23:46

+0

在.m文件中 'float RWI; // @合成RWI;这应该在这里吗? @synthesize Liters; @synthesize问候; \t - (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 *升; } @property(nonatomic,retain)IBOutlet UILabel * greeting; @end – anneke 2010-09-21 13:24:02

+0

In。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; \t }任何帮助,将不胜感激! :D – anneke 2010-09-21 13:24:27

0

你可以把这个变量应用程序委托的财产,这将是从你的应用程序中的任何地方访问。如果你不想因为任何原因想要这样做,你可以创建一个“助手”单例来保存这些变量并重新设置它们的属性。

+0

好的,我会在我的应用程序中继续使用delegate.h \t float RWI; @property(nonatomic,retain)float * RWI;'?以及如何从我的视图控制器调用它? – anneke 2010-09-21 10:00:26

+0

你不能保留一个浮动,否则是的。在您的视图控制器,执行:'浮动RWI = [[[[UIApplication sharedApplication]委托] RWI];' – Toastor 2010-09-21 10:05:27

+0

对不起,我真的很新这个..我如何发送从我firstviewcontroller,然后如何检索它在我的secondviewcontroller? – anneke 2010-09-21 10:14:42