2016-04-26 3 views
0

私はジュニアiOS開発者です。 現在、私はアプリケーションを作成しています。設定を作成したいので、UITableViewControllerにカテゴリを持つUITableViewがあり、セルをクリックすると、クリックされたカテゴリのすべての値を含む別のUITableViewを表示する必要があります。ここで コードです:私は聞かせてのViewControllerの行のコメントを解除した場合PrepareForSegueメソッドを使用してUITableViewから別のものに渡す

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

if segue.identifier == "getValueFromCategory" { 
    let viewController = (segue.destinationViewController as? UnitTableViewController)! 

    let indexPath = self.tableView.indexPathForSelectedRow!.row 
    print(indexPath) 
    segue. 
    //print(viewController) 
    viewController!.toPass = self.categories[indexPath].titleCategory 
} 
} 

、私はこのエラーを得た:型「のUITableViewController」(0x10b635c10)に「fitness.UnitTableViewController」(0x108196d48)の値をキャストできませんでした。

私が間違っていることを誰かが知っているなら、それは助けになるかもしれません!

ありがとうございます!あなたが言っているよう

+0

現在のクラス名と宛先クラス名とそのプロパティの両方を投稿してください。 – Shubhank

+0

didSelectedRowAtIndexを使用して別のViewControllerを使用してみませんか? – Hasya

答えて

0

問題は、これらの行にあります。

if segue.identifier == "getValueFromCategory" { 
    let viewController = (segue.destinationViewController as? UnitTableViewController)! 

エラーメッセージは、このセグエのdestinationViewControllerが、実際には、UnitTableViewControllerではないことを示しています。それはそうだと思うかもしれませんが、そうではありません。あなたはストーリーボードのこのセグを調べて、実際にその終わりの端にあるものを見る必要があります。

のUIViewControllerは私はあなたがストーリーボードにこのView Controllerのアイデンティティインスペクタ内の任意のビューコントローラタイプを入力し忘れたことを疑うになりようなエラーメッセージが、それを説明しているという事実:

enter image description here

+0

こんにちは、 非常に明確な答えをありがとう。 理由はわかりませんが、ストーリーボードでは私はこれらの情報にアクセスできません 「選択なし」と書いてあるのはなぜですか? 私はあなたの答えを試してみました。 –

0

アプローチ1

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

    let objNextViewController : NextViewController = segue.destinationViewController as! NextViewController 

    // objNextViewController.array = currentClassArray 

} 

それとも

アプローチ2

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

let objNextViewController = self.storyboard?.instantiateViewControllerWithIdentifier(“ID_NextViewController”) as? NextViewController 

// objNextViewController.array = currentClassArray 

self.navigationController?.pushViewController(objNextViewController!, animated: true) 

}