2016-12-19 7 views
0

私はいくつかの検索結果でtableViewを持っています。私は、第1のビューと第2のビューを、セルから第2のビューへの「ストーリーボード・セグエ」と接続しました。UITableViewのセルをタップし、他のビューは表示されません。

これは最初のViewControllerで書かれたコードです:私はタップしにスワイプする必要がある第二のViewControllerを表示するために、それは完璧に動作しますが、このプロジェクトでは、それは動作しません、他のプロジェクトで

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

    let indexPath = self.tableProva.indexPathForSelectedRow?.row 

    let vc = segue.destination as! DettaglioNewViewController 

    vc.titleLibro = posts[indexPath!].name 
    vc.authorLibro = posts[indexPath!].author 
    vc.ISBNLibro = posts[indexPath!].ISBN 

} 

右または左。

問題はグラフィックであるようです。 セルをクリックしようとするとグレーにならない。私はそれを長く押し続けると灰色に変わる

これは誰にも起こったことがありますか?

誰でも手伝ってもらえますか?

+0

あなたのコントローラにtapGestureやその他のイベントがありますか? – Snoobie

+0

ええ、@Snoobieのように、私は他のハンドラがそれをつかんでいると思います。 –

+0

@Snoobieどこから見えますか? – DanieleLanari

答えて

0

特定のセルの別のビューに分割するには、 'didSelectRowAtIndexPath'メソッドを使用する必要があります。使用する.....

var storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: NSBundle(forClass: self.dynamicType)) 

vc = storyboard.instantiateViewControllerWithIdentifier("LoginVC") as DettaglioNewViewController 
vc.loadView() 

.....必要な情報をセグします。上記の例では

*情報の例*

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) 
{ 
    myFavIndex = indexPath.row 
    let storyBoard = UIStoryboard(name: "Main", bundle:nil) 
    let view = storyBoard.instantiateViewControllerWithIdentifier("LoginVC") as! DettaglioNewViewController 
    view.imageURL = self.imageArray[mySelectedIndex] 
    view.titleString = self.titleArray[mySelectedIndex] 
    self.presentViewController(view, animated: true, completion: nil) 
} 

私は[mySelectedIndex]を経由して私の選択したセルの情報からその景色の要素を取り込むためにview.imageURLview.titleStringとして新しいビューコントローラの画像とタイトルを使用しています。 Int,UIImage,Stringなどでこれを行うことができます。

+0

セルから2番目のビューにデータをどのように転送できますか? – DanieleLanari

+0

@DanieleLanari質問に追加した詳細な例をご覧ください。 –

+0

それは問題がグラフィックであるようです。セルをクリックしようとするとグレーにならない。私はそれを長く押し続けると灰色に変わる – DanieleLanari

0

コードからコントローラを初期化する必要はありません。カスタムセグを作成して、テーブルデリゲートの 'didSelect'メソッドで 'performSegue'メソッドを呼び出します。

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){ 
     self.performSegueWithIdentifier("yourIdentifierInStoryboardForCustomSegue", sender: nil) 
} 
関連する問題