2016-05-25 4 views
0

私は現在、別のView Controllerに組み込まれているテーブルビュー内の場所のリストを持つSwiftのアプリケーションを作成しています。私が抱えている問題は、ユーザーの場所を取得する前にセグをロードすることです。場所が取得されるまで待つ必要があります。これは私が現在やっているものです:それはセグエを行う前に更新するための時間がないのでコンテナビューで埋め込みセグを遅らせてもよろしいですか?

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 

    if let embeddedVC = segue.destinationViewController as? MapList where segue.identifier == "locationList" { 

     embeddedVC.longitude = self.longitude 
     embeddedVC.latitude = self.latitude 

    } 


} 

現在はそれだけで0,0の位置を渡します。

+0

は 'shouldPerformSegueWithIdentifier'機能を見てみましょう - あなたはそこにfalseを返すことができ、その後、私は* – luk2302

答えて

0

をトリガすることができ、私はこのコードを使って、それを修正

if (segue.identifier == "locationList") { 

    let detailScene = segue.destinationViewController as! MapList 

    self.embedvc = detailScene; 

} 
その後、3210

と私は場所を通過したい:

self.embedvc?.latitude = self.latitude 
self.embedvc?.longitude = self.longitude 
0

プロパティオブザーバのようにdidSetwillSetを使用すると、経度と緯度の変化を監視できます。両方の変更が完了したら、セグを実行します。例えば

:prepareForSegue機能に続いて

var embedvc:MapList? 

tup一度

var tup : (longitude: Int, latitude: Int) = (0,0) { 
didSet { 
    print("Segue") 
    //Segue here 
    } 
} 

tup = (longitude: 1, latitude: 2) 

が変更され、あなたがセグエ

+0

再びセグエをトリガーその後、場所を待つと*コンテナービューを使用し、 "viewDidLoad"が実行されると自動的にトリガーされます。自動実行せずにコンテナビューを作成する方法はありますか? –

+0

はい。しかし、まだ何かが操作を引き起こす必要があります。ボタン、タイマー... – Idan

+0

埋め込みセグがあるイダントリガーはありません。 – CSjunkie

関連する問題