2017-04-01 49 views
-1

我有一個從表視圖中傳遞位置數據的segue。我需要在這個segue完成之後添加一個map註釋,但是這個map是我的初始VC,所以它在加載時由於缺少數據而崩潰,因爲沒有發生segue。如何檢查是否已完成Swift 3?

我想我需要在if語句中檢查是否發生了segue,或者檢查是否有任何可用的數據可用來包裝以下代碼(在viewDidLoad中)。

let roomPin = MGLPointAnnotation() 
    roomPin.coordinate = CLLocationCoordinate2D(latitude: room.latitude, longitude: room.longitude) 

    mapView.addAnnotation(roomPin) 

不能完全確定我應該如何檢查是否有任何數據使用。

編輯:

室是裝載有alamofire

class Room { 

var roomNumber : String! 
var roomName : String! 
var latitude : Double! 
var longitude : Double! 

init(json : JSON) { 
    roomNumber = json["room_number"].stringValue 
    roomName = json["room_name"].stringValue 
    latitude = json["latitude"].double 
    longitude = json ["longitude"].double 
} 

的自定義類}

然後被稱爲在tableview中顯示的名稱和數量。當按下時它執行賽格瑞傳遞室對象到我mapVC

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 


    if segue.identifier == "mapSegue" { 
     if let destination = segue.destination as? ViewController { 
      destination.room = sender as! Room 


     } 
    } 
} 

在我地圖視圖控制器我有上面在viewDidLoad中註釋的代碼,與空間被聲明爲:

var room : Room! 

不限幫助表示讚賞!

+0

顯示您的代碼。什麼是'房間'?它是如何設置的? – matt

回答

0

我想這個問題是在該行destination.room = sender as! Room因爲senderUITableViewCell類型的類,並且當您嘗試強制轉換崩潰senderRoom對象類型。

+0

嗯,你說得對。我需要找到一個解決方案。謝謝。 – ollyboon

相關問題