2016-09-21 93 views
1

試圖讓我的酒吧按鈕做2個動作,如果它被按下。它是否與「轉換」語句一起工作,或者我如何從這裏出發?Bar button double action swift

代碼:

@IBAction func Refreshbutton(sender: AnyObject) { 


    switch sender.currentTitle! { 
    case "refresh": 
    Mapview.userTrackingMode = .Follow 

    case "refresh2": 
    Mapview.userTrackingMode = .FollowWithHeading 

    default: break 

    } 

回答

1

這將是一個辦法做到這一點。但是,最好將類中的狀態保存在類中,而不是使用標題,因爲它可能會在未來進行本地化,因爲您應該嘗試將UI與邏輯分開。你可以做這樣的事情:

var trackingMode = .FollowWithHeading 
@IBAction func Refreshbutton(sender: AnyObject) {  
    trackingMode = trackingMode == .Follow ? .FollowWithHeading : .Follow 
    Mapview.userTrackingMode = trackingMode 
} 

你或許可以使用地圖的直接財產:

@IBAction func Refreshbutton(sender: AnyObject) {  
    Mapview.userTrackingMode = Mapview.userTrackingMode == .Follow ? .FollowWithHeading : .Follow 
} 

作爲一個側面說明你貼的代碼,這將是保護程序,如果你會做

switch sender.currentTitle ?? "" { 

,而不是

switch sender.currentTitle! { 

這樣,如果沒有標題設置,應用程序不會崩潰,它只是使用默認情況。

+0

謝謝工作! – Adam