为什么我的float返回零并重复使用UIStepper?

时间:2015-09-05 00:09:16

标签: ios objective-c uistepper

我将价格乘以与UIStepper相关的数量。

以下是我的表现:

- (void) stepperForQuantity:(UIStepper *)sender
{
    double value = [sender value];

    //NSLog(@"%d",(int)value);

    NSLog(@"%.2f",selectedPrice);

    self.countLabel.text = [NSString stringWithFormat:@"%d",(int)value];

    int total = [self.priceForPopUp intValue];

    selectedPrice = value * total;

    self.priceLabel.text = [NSString stringWithFormat:@"%@%.2f", @"$" ,selectedPrice];

    NSLog(@"%.2f",selectedPrice);

}

NSLog selectedPrice这是我点击UIStepper上的加号图标时得到的结果:

在这种情况下,产品的起始价格是35.00。

 35.00
 0.00
 70.00
 70.00
 105.00
 105.00
 140.00

现在我也注意到上面有重复的数字。我不能拥有这个,因为这对电子商务来说是个大问题。

这是我的UIStepper

UIStepper *stepper = [[UIStepper alloc]initWithFrame:CGRectMake(25, 75, 0, 0)];
        stepper.minimumValue = 1;
        stepper.tintColor = [UIColor blackColor];
        [stepper addTarget:self action:@selector(stepperForQuantity:) forControlEvents:UIControlEventTouchUpInside];
        [view addSubview:stepper];

传递到下一个视图

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
   // NSLog(@"prepareForSegue: %@",segue.identifier);
    PaymentViewController *transferToPayment = segue.destinationViewController;




    if ([segue.identifier isEqualToString:@"homeToPayment"]) {
       // NSLog(@"test home payment");

        transferToPayment.price = [NSString stringWithFormat:@"%.2f",selectedPrice];
        NSLog(@"Price passed %.2f",selectedPrice);

    }
}

1 个答案:

答案 0 :(得分:0)

您应该回复UIControlEventValueChanged个事件,而不是UIControlEventTouchUpInside