2013-06-22 44 views
0

我有一個分段控件,應該在每個分段控件按鈕被選中時改變我的變量的值。例如,如果選擇了按鈕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; 
    } 
} 

我合成變量 「settingVar1」 在我的.m文件

@interface ViewController() 
@end 
@synthesize settingVar1; 

,我宣佈它在我的.h文件。

@interface ViewController : UIViewController { 

    int settingVar1; 

我也在.h文件中做了變量屬性。

@property (nonatomic)int settingVar1; 

有什麼我需要改變?如果您需要查看其他代碼,請告訴我。預先感謝您提供的任何建議。

+0

在你的代碼中放了一些日誌,你怎麼知道它沒有改變?這個功能真的叫什麼? – adali

+0

我確實添加了NSLog,並且每次都返回「0」。 ** bold **'NSLog(@「settingVar1等於%i」,settingVar1);' – user2495189

+0

把一些日誌看看是否調用了segmentbutton1:以及segmentController1.selectedSegmentIndex的值是什麼 –

回答

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; 
    } 
} 
0

你可以從這個鏈接獲得幫助:enter link description here

請檢查您的操作方法連接xib文件與UISegmentedControl與否。 更好的方法來改變價值。你應該使用這個

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

} 
0

我想通了。在我的.xib文件(屬性選擇器選項卡)中,默認情況下,我的段控制器中的第一個按鈕是「選中」的,所以當我測試應用程序時,我沒有點擊任何段控制按鈕,因爲我認爲印記按鈕會有價值。我從段控件中刪除了「選中」選項,這迫使我不得不點擊一個按鈕並且公式起作用。感謝所有向我提供幫助的人。