2010-09-15 28 views
4

這裏是IBAction爲方法鏈接到UISwitch與ValueChanged事件:UISwitch不返回(開/關)的當前狀態

- (IBAction) sanitySwitch { 
if (checkoption.on == YES) { 
    NSLog(@"SanityCheck ENABLED"); 
    sanityCheck = YES; 
} else { 
    NSLog(@"SanityCheck DISABLED"); 
    sanityCheck = NO; 
} 
} 

它總是返回 「SanityCheck DISABLED」。 UISwitch checkoption正確地連接到XIB文件中的對象,並且已經放置了正確的@propery和@syntetize設置。

回答

14

用此代碼替換代碼。 並用開關重新連接作爲值更改控制事件。

- (IBAction) sanitySwitch:(id)sender { 
    if ([sender isOn]) { 
     NSLog(@"SanityCheck ENABLED"); 
     sanityCheck = YES; 
    } 
    else { 
     NSLog(@"SanityCheck DISABLED"); 
     sanityCheck = NO; 
    } 
} 
+0

要標記代碼縮進4空格或選擇代碼並按下'010'按鈕 - 無需html標記等 – 2010-09-15 10:02:23

+0

+1,並且非常感謝... :) – Sarah 2012-03-30 11:06:43

+1

我有一個完全奇怪的問題,你有嗎?要使用「發件人」而不是self.yourSwitch,「isOn」(或.on)才能正常工作。誰知道? – Fattie 2014-01-06 12:04:00

-1

你必須檢查如下您「的」使用屬性錯誤的方法:

if ([checkoption isOn]) 

the documentation正常。

+0

我試着用if([checkoption isOn]),該方法仍然總是返回「SanityCheck DISABLED」。 – Kami 2010-09-15 07:47:13

+0

薩蒂揚,'getter = foo'只適用於'[switch isOn]'等顯式調用,而不適用於點語法。 – 2010-09-15 08:54:28

相關問題