分段控件不会更改变量的值

时间:2013-06-22 22:37:25

标签: iphone variables if-statement uisegmentedcontrol xcode4.6

我有一个分段控件,当选择每个分段控制按钮时,它应该更改变量的值。例如,如果选择了按钮0,则应将变量指定为“1000”,或者如果选择了按钮1,则应为变量指定值“2000”。

-(IBAction)segmentbutton1:(id)sender {

    if (segmentController1.selectedSegmentIndex == 0) {
        settingVar1 = 1000;
    }
    if (segmentController1.selectedSegmentIndex == 1) {
        settingVar1 = 2000;
    }
    if (segmentController1.selectedSegmentIndex == 2) {
        settingVar1 = 3000;
    }
}

我在.m文件中合成了变量“settingVar1”

@interface ViewController ()
@end
@synthesize settingVar1;

我在我的.h文件中声明了它。

@interface ViewController : UIViewController {

    int settingVar1;

我也在.h文件中创建了变量属性。

@property (nonatomic)int settingVar1;

我需要改变什么吗?如果您需要查看任何其他代码,请告诉我。提前感谢您提出的任何建议。

3 个答案:

答案 0 :(得分:0)

请检查你应该这样做:

- (void) viewDidLoad
{
    [segmentController1 addTarget: self
                           action: @selector(segmentbutton1:)
                 forControlEvents: UIControlEventValueChanged];
}

- (IBAction) segmentbutton1: (id)sender 
{
    if (segmentController1.selectedSegmentIndex == 0) {
        settingVar1 = 1000;
    }
    if (segmentController1.selectedSegmentIndex == 1) {
        settingVar1 = 2000;
    }
    if (segmentController1.selectedSegmentIndex == 2) {
        settingVar1 = 3000;
    }
}

答案 1 :(得分:0)

您可以从以下链接获得帮助:enter link description here

请检查您的操作方法是否已在xib文件中与UISegmentedControl相关联。 更改价值的更好方法。你应该用这个

-(IBAction) segmentbutton1: (id)sender 
{
        settingVar1 = (segmentController1.selectedSegmentIndex + 1) * 1000;

}

答案 2 :(得分:0)

我明白了。在我的.xib文件(属性选择器选项卡)中,默认情况下我的段控制器中的第一个按钮“已选中”,所以当我测试应用程序时,我没有点击任何段控制按钮,因为我认为留下深刻印象的按钮会有价值。我从段控件中删除了“选中”选项,这迫使我必须单击一个按钮并且公式有效。感谢所有给我帮助的人。