2017-08-09 38 views
0

我想返回我在我的Xcode項目中所做的值。 Int值是在步進器的@IBAction函數中進行的。如何從swift 3中的@IBAction函數返回一個Int變量?

@IBAction func stepper(_ sender: UIStepper) -> Int { 
    let Number: Int = Int(sender.value) 
    return Number 
print(Number) 

該系統給我這個錯誤: 「方法聲明@IBAction必須返回 '無效'(not'Int')」。

+0

沒有理由這樣做,因爲您不直接調用步進器,系統正在爲您調用它。那個回報值應該在哪裏結束? – Connor

+2

@IBAction這些是事件。他們不應該返回任何結果 –

+0

在類級別爲View控制器類使用'var',比如'var stepperValue:Number?',然後在'@ IBAction'方法內使用該變量'stepperValue'。 'IBAction's不能返回值。 – Annjawn

回答

1

@IBAction是一個內置的屬性,用於激發將根據用戶的交互執行某些任務並且不能返回值/對象的方法。你可以做的是觸發其他動作,或初始化動作方法中的其他全局/局部變量。

錯誤 - Methods declared @IBAction must return 'Void' (not'Int')只是意味着IBAction方法不能返回任何內容,並且必須返回void又沒有。

基於使用步進的價值爲UIButton這是你可以做 -

在類級別的視圖控制器聲明一個變量

var stepperValue: Int = 0 { 
    didSet{ 
     // use stepperValue with your UIButton as you want 
    } 
} 

然後是@IBAction您的評論 -

@IBAction func stepper(_ sender: UIStepper){ 
    stepperValue = Int(sender.value) 
} 

每次,stepperValue被設定在@IBAction方法中的代碼塊insid e didSet觀察員將會觸發並且stepperValue的當前值可以在didSet觀察者代碼塊內進行訪問,以用於您想要的任何邏輯。或者,您可以簡單地將整個didSet觀察程序塊代碼放入IBAction方法stepper的內部。

或者,您可以編寫另一種方法func modifyMyButton(_ stepperval: Int)將您的邏輯放在那裏,並從IBAction方法中調用此方法。

0

@IBAction func是基於系統的功能,基於用戶交互的事件觸發。他們不會回報你任何東西。如果你願意,他們會爲你調用函數。您需要描述您嘗試實施的場景。

+6

這應該是一個評論,而不是一個答案。 – Annjawn

+0

這並沒有提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 - [來自評論](/ review/low-quality-posts/16986081) –

相關問題