2016-06-22 8 views
1

私はイベントのリストを持つテーブルビューを持っています。私は今、タップされたイベントに基づいてそれらのイベントのすべてに関する詳細を表示できる動的なビューを作成しようとしています。私が持っている2つの質問は、どのように私は同じビューに移動する任意のテーブルのセルに使用することができますし、そのビューでは、ビューにユーザーをもたらしたセルにアクセスする一般的なセグを作成するのですか?前のテーブルビューでタップしたセルに基づくスウィフト動的ビュー

答えて

2

didSelectRowAtIndexPathを使用します。まず、ViewControllerにタイプEventの変数eventToPass(またはクラスが呼び出されたもの)を作成します。次に、あなたのデータを表すオブジェクトを取得し、それを新しいUIViewControllerに渡す必要があります。ような何か:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

    let event = eventsArray[indexPath.row] 
    self.eventToPass = event 

    self.performSegueWithIdentifier("EventSegue", sender: self) 
} 

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) { 
    if (segue.identifier == "EventSegue") { 
    var detailVC = segue.destinationViewController as EventDetailViewController 
     detailVC.event = eventToPass 
    } 
} 

は、これはあなたがeventというプロパティがありEventDetailViewControllerと呼ばれるViewControllerを持っていることを前提としています。ここからViewControllereventの詳細のいずれかにアクセスできます。

+0

新しいビューではどのようにイベントにアクセスしますか?変数が 'event'としてアクセスされるようにdetailVC.eventを設定する場所ですか? –

+0

@MichaelStClairうん、ちょうどそれをより明確にするために私の答えを編集しました。私はまた、Segueが 'EventSegue'と呼ばれると仮定しました – Daven

+0

申し訳ありませんが最後に、新しいView Controllerにイベントプロパティを追加する方法はありますか? –

関連する問題