在视图控制器之间传输浮点值 [重复]
Posted
技术标签:
【中文标题】在视图控制器之间传输浮点值 [重复]【英文标题】:Transfer float values between view controllers [duplicate] 【发布时间】:2014-06-19 16:07:04 【问题描述】:我希望将浮点值从一个视图控制器传输到另一个视图控制器。 我能找到的所有教程都只给出了文本传输的例子,而不是值。
我有一个设置页面,允许用户单击具有常量float
值的按钮,例如Tear = 0.13
、Engine = 0.15
等。我希望将这些值传输到根视图控制器,一次按钮
被点击。
我创建了一个 push segue,并添加了一些来自 prepareforSegue:
教程的代码
源视图控制器的实现文件。
谁能帮我下一步,这是转移float
值的代码
从源控制器到目标(根)控制器。
这是我目前在源视图控制器中prepareforSegue:sender:
中的内容。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
if ([[segue identifier] isEqualToString:@"SendInfo"])
ViewController *detailViewController = [segue destinationViewController];
这就是CalcViewController
实现文件在IBAction
区域中的外观。
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
if ([[segue identifier] isEqualToString:@"SendInfo"])
ViewController *detailViewController = [segue destinationViewController];
- (IBAction)WT2:(id)sender
- (IBAction)WT:(id)sender
float Tear=0.13;
- (IBAction)Car1:(id)sender
float Litre=0.13;
- (IBAction)Car2:(id)sender
float Litre=0.15;
- (IBAction)Car3:(id)sender
float Litre=0.25;
- (IBAction)MP1:(id)sender
float Net1=0.03;
- (IBAction)MP2:(id)sender
@end
【问题讨论】:
【参考方案1】:您的问题是您不会将 Tear/Engine/Litre 值存储在任何地方。据我所知,您想在ViewController
的实例上设置一个浮点值。为对象设置属性很简单。
ViewController.h
@interface ViewController : UIViewController
@property (nonatomic) float litre;
@property (nonatomic) float tear;
@end
CalcViewController.m
@interface CalcViewController ()
@property (nonatomic) float selectedLitre;
@property (nonatomic) float selectedTear;
@end
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
if ([[segue identifier] isEqualToString:@"SendInfo"])
ViewController *detailViewController = [segue destinationViewController];
detailViewController.litre = self.selectedLitre;
detailViewController.tear = self.selectedTear;
//present detailViewController here...
- (IBAction)WT:(id)sender
self.selectedTear = 0.13;
- (IBAction)Car1:(id)sender
self.selectedLitre = 0.13;
【讨论】:
我注意到您创建了 ViewController 的 *detailViewController 对象 - 但在 ViewController.h 中没有为浮点值调用该对象。对吗?? 你好,克里斯!我实现了你的代码,但从那以后项目就崩溃了。这似乎是内存泄漏,但我不确定问题出在您的代码中。有什么建议么?似乎如果我选择其中一个按钮,Tear 或 Litre,那么它就会崩溃.. @user1641906 此问题已关闭。如果您对代码有具体问题,请创建一个新问题。以上是关于在视图控制器之间传输浮点值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章