2016-09-25 69 views
0

試圖在按下按鈕時顯示文本,並顯示不同類型的地圖(混合,標準或衛星)。 但是,當我按下按鈕,我得到錯誤(當然,當我沒有「textchange」代碼)。那麼,如何知道其不同類型的地圖而不會出現此錯誤並導致應用程序崩潰?快速按鈕操作文本更改

我用這個代碼

@IBAction func mapType(sender: AnyObject) { 
    if Mapview.mapType == MKMapType.Standard { 
     Mapview.mapType = MKMapType.Satellite 
     sender.setTitle("Satellite", forState: .Normal) 

    } else { 
     if Mapview.mapType == MKMapType.Satellite { 
      Mapview.mapType = MKMapType.Hybrid 
      sender.setTitle("Hybrid", forState: .Normal) 

    } else { 
      Mapview.mapType = MKMapType.Standard 
      sender.setTitle("Standard", forState: .Normal) 
    } 
    } 
} 

回答

0

三種狀態之間切換時,我寧願用UISegmentedControl

用您的故事板的UISegmentedControl元素的CTRL拖動連接創建一個IBAction

實現方法如下:

@IBAction func segmentedControlChanged(_ sender: UISegmentedControl) { 

    print(sender.selectedSegmentIndex)   
    // if states within your control is indexed in following order: Standard, Satellite, Hybrid: 

    switch sender.selectedSegmentIndex { 
     case 0: 
      Mapview.mapType = MKMapType.Standard 
     case 1: 
      Mapview.mapType = MKMapType.Satellite 
     case 2: 
      Mapview.mapType = MKMapType.Hybrid 
     default: 
      Mapview.mapType = MKMapType.Standard 
    }    
} 
+0

做了一個標籤,並使其改變文字。雖然 – Adam

+0

謝謝當我按下按鈕..錯誤 – Adam

+0

什麼按鈕?請提供一定的錯誤 – pedrouan