首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法读取UIStepper的值

无法读取UIStepper的值
EN

Stack Overflow用户
提问于 2013-03-31 10:43:56
回答 1查看 852关注 0票数 0

我在试着设计我自己的间歇训练计时器。现在,我在读取UIStepper控件的值时遇到了问题。

我在UIStepper控制器上设置了一个int,这个控制器到目前为止还能工作。

代码语言:javascript
复制
- (IBAction)stepperChange:(id)sender {

// converting double to int
int temp = [[NSNumber numberWithDouble:[(UIStepper *)sender value]] intValue];

NSLog(@"stepper was pressed. Current values is %d", [[NSNumber numberWithDouble:[(UIStepper *)sender value]] intValue]);

self.intervalSeconds.text = [NSString stringWithFormat:@"%i", [[NSNumber numberWithDouble:[(UIStepper *)sender value]] intValue]];

mainInt = [[NSNumber numberWithDouble:[(UIStepper *)sender value]] intValue];

}

到目前一切尚好。问题是,当计时器达到0时,我希望将计时器重置为UISteppers值。但是,当我试图直接读取不带(Id)发送者的分步器值时,我总是得到0的值。

e.g

代码语言:javascript
复制
-(void)readStepperValue {

NSLog(@"Read UIStepper control value: %f", [intervalStepper value]);

}

我想这只是一个愚蠢的初学者错误..。

好的,我刚刚做了一个超级简单的测试应用程序,代码看起来如下:

vierController.h:

代码语言:javascript
复制
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController {

IBOutlet UIStepper *stepper;
IBOutlet UILabel *stepperValue;
}

@property (nonatomic, strong) UIStepper *stepper;
@property (nonatomic, strong) UILabel *stepperValue;

- (IBAction)showStepperValue;

@end

viewController.m:

代码语言:javascript
复制
#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController
@synthesize stepper, stepperValue;

- (IBAction)showStepperValue {
int temp = stepper.value;
stepperValue.text = [NSString stringWithFormat:@"%i", temp];
[self showValue];
}


- (void)showValue {
int temp = stepper.value;
NSLog(@"stepper.value: %i", temp);
}


- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

@end

标签在IBAction方法中被正确更新。但是当我调用一个独立的方法(showValue)时,它不能读取控制器的值,它不在IBAction内.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-31 13:39:27

换个办法试试。

viewController.h:

代码语言:javascript
复制
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property (nonatomic, strong) IBOutlet UIStepper *stepper;
@property (nonatomic, strong) IBOutlet UILabel *stepperValue;

- (IBAction)showStepperValue;

@end

viewController.m:

代码语言:javascript
复制
#import "ViewController.h"

@implementation ViewController

- (IBAction)showStepperValue {
    double temp = self.stepper.value;
    self.stepperValue.text = [NSString stringWithFormat:@"%f", temp];
    [self showValue];
}

- (void)showValue {
    double temp = self.stepper.value;
    NSLog(@"self.stepper.value: %f", temp);
}

@end

摆脱iVars,只依赖属性不仅减少了您需要编写的代码量,而且还有助于消除任何iVar/属性绑定错误。

更新: self.stepper.value是双重的,而不是int (但这不是您的问题)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15728586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档