Iphone 在多个ViewController之间传递浮点值

Iphone 在多个ViewController之间传递浮点值,iphone,xcode,variables,tabs,viewcontroller,Iphone,Xcode,Variables,Tabs,Viewcontroller,Im使用选项卡在两个视图控制器之间切换 如何在secondviewcontroller中检索已在firstviewcontroller中启动的浮点?我应该做一些全局变量吗?我在哪里以及如何做到这一点 谢谢大家:全局变量永远都不可取,我强烈建议使用一些消息传递模式,s.th。SecondViewController和FirstViewController可以在更改其他人感兴趣的内容时进行同步。 乍一看,我只发现这条指南讲述了cocoa中的消息传递模式,我想已经有iPhone的示例实现了。为此使用A

Im使用选项卡在两个视图控制器之间切换

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


谢谢大家:

全局变量永远都不可取,我强烈建议使用一些消息传递模式,s.th。SecondViewController和FirstViewController可以在更改其他人感兴趣的内容时进行同步。
乍一看,我只发现这条指南讲述了cocoa中的消息传递模式,我想已经有iPhone的示例实现了。

为此使用AppDelegate

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

+(float)ReturnData
{
 return GlobalValue;
}
像这样打电话

[YourAppDelegate ReturnData];

您可以将该变量设置为应用程序委托的属性,该属性可以从应用程序中的任何位置访问。如果出于任何原因您不想这样做,您可以创建一个helper singleton来保留这些变量,并使它们再次成为属性。

好的,那么我将进入我的app delegate.h float RWI@属性非原子,保留浮点*RWI;`?如何从视图控制器调用它?不能保留浮点,否则是的。在viewcontroller中,do:float RWI=[[[UIApplication sharedApplication]委托]RWI];对不起,我是个新手。。如何从第一个ViewController发送,然后如何在第二个ViewController中检索?我前面的注释中的代码行就是接收代码。它调用应用程序委托的新属性的getter并返回其值。要发送,请在第一个viewcontroller中将其设置为:[[[UIApplication sharedApplication]委托]setRWI:foobar];,其中foobar包含您想要设置的值。为了进一步解释这一点:您实际做的是调用方法来设置和检索为您的属性自动生成的实例变量的值-这就是@synthesis的作用。因此,您并不是真正访问变量本身。应用程序共享应用程序的其他内容。。。正在调用一个类方法来检索指向应用程序委托的指针,因此您可以首先将getter和setter调用发送给它;浮升@财产经济学,保留;IBUILabel*问候语-iAction updatePrefs:id发送方@房地产经济浮动*RWI@不动产经济浮动*升;不确定是否应将其作为新问题添加?好的,我试过使用NSUserDefaults。首先我用一根绳子试了试,效果很好,现在我正努力用float做同样的事情。在我的firstviewcontroller.h IBOutlet UITextField*nameField中;IBUILabel*问候语;浮动RWI;浮升@不动产经济浮动*升@财产经济学,保留;IBUILabel*问候语@propertynonatomic,保留IBOutlet UITextField*nameField-iAction updatePrefs:id发送方@房地产经济浮动*RWI`在.m文件中` float RWI//@合成RWI;这个应该在这里吗@合成升@综合问候语;-iAction updatePrefs:id发送方{NSUserDefaults*prefs=[NSUserDefaults standardUserDefaults];[prefs setObject:nameField.text-forKey:@greeting];[prefs setFloat:20 forKey:@Lills];[prefs synchronize];对于secondviewcontroller.h iBuilLabel*greeting;float*Lills;}@propertynonatomic,保留iBuilLabel*greeting@endIn.m@implementation secondviewcontroller@synthetic@合成升;-voidviewDidLoad{[super viewDidLoad];NSString*prefs=[[NSUserDefaults standardUserDefaults]objectForKey:@greeting];float Lells=[prefs floatForKey:@Lells];greeting.text=prefs;}任何帮助都将不胜感激这应该是一个新问题。。。不可能有人会在一连串的评论中回答这个问题。