2016-03-23 2 views
5

私はBasicPhrasesVCと呼ばれるViewviewを持つViewControllerを持っていて、次のViewController(BasicPhrasesVCという)に表示するために、選択したセルのデータを渡したいと思います。私はここに置か内容が不明だすぐにprepareForSegueを使用するにはどうすればよいですか?

class BasicPhrasesVC: UIViewController, UITableViewDataSource, UITableViewDelegate { 

let basicPhrases = ["Hello.","Goodbye.","Yes.","No.","I don't understand.","Please?","Thank you.","I don't know."] 
var selectedBasicPhrase = "" 

func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
    return 1 
} 

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return basicPhrases.count 
} 


func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell")! 
    cell.textLabel?.text = basicPhrases[indexPath.row] 
    return cell 
} 

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

は、すべてのヘルプは高く評価され

} 

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    selectedBasicPhrase = basicPhrases[indexPath.row] 
    performSegueWithIdentifier("BasicPhrasesVC2BasicDisplayVC", sender: self) 

} 
} 

(私は、変数「selectedBasicPhrase」に渡したいです)。

答えて

8
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    selectedBasicPhrase = basicPhrases[indexPath.row] 
    self.performSegueWithIdentifier("BasicPhrasesVC2BasicDisplayVC", sender: selectedBasicPhrase) 

} 

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     if segue.identifier == "BasicPhrasesVC2BasicDisplayVC" { 
      if let nextVC = segue.destinationViewController as? NextViewController { 
       nextVC.selectedBasicPhrase = sender 
      } 
     } 
    } 
+0

おかげ "型の値指定した型に 'BasicDisplayVC' 'BasicPhrasesVC' を変換することができません" と 。 –

+2

destinationViewControllerの名前がdestinationに変更されました。 –

0
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) { 
    if (segue.identifier == "<segue name>") { 
     // pass the data 
    } 
} 
0

セグレット名はdestinationViewControllerよりも小さいかどうかを確認し、データを送信してください。

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) { 
    if (segue.identifier == "BasicPhrasesVC2BasicDisplayVC") { 
     let viewController:ViewController = segue!.destinationViewController as ViewController 
     viewController.selectedBasicPhrase = "Test phrase" 
    } 
} 
+0

私は今、これを持って –

+0

助けて常に幸せはありません問題: 'オーバーライドprepareForSegue FUNC(セグエ:UIStoryboardSegue、送信者:?ANYOBJECT){ 場合(segue.identifier == "BasicPhrasesVC2BasicDisplayVC") { let viewController:BasicPhrasesVC = segue.destinationViewController as! BasicDisplayVC viewController.selectedBasicPhrase = basicPhrases [indexPath.row] }} 'エラーこの便利な答えを –

関連する問題