在视图控制器之间传输浮点值

时间:2014-06-19 16:07:05

标签: ios objective-c cocoa-touch uiviewcontroller uistoryboardsegue

我希望将浮点值从一个视图控制器传输到另一个视图控制器。 我能找到的所有教程只给出了文本传输的例子,而不是值。

我有一个设置页面,允许用户点击具有常量float值的按钮,例如Tear = 0.13Engine = 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 个答案:

答案 0 :(得分:0)

您的问题是您不能将Tear / Engine / Liter值存储在任何地方。根据我可以收集的内容,您希望在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;
}