2017-06-17 7 views
0

テーブル行をクリックすると、いくつかのView Controllerに行きたいと思っています。 私は以下のようなコードを作った。Swift:いくつかのviewcontrollerに移動したい

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 
{ 

     var targetId = "" 
     var targetController: UITableViewController! 

     switch indexPath.row { 
     case 2: 
      targetId = "TableView1" 
      targetController = TableViewController1() 
     case 2: 
      targetId = "TableView2" 
      targetController = TableViewController2() 
     case 2: 
      targetId = "TableView3" 
      targetController = TableViewController3() 
     default: 
      return 
     } 

     let detailView = self.storyboard?.instantiateViewController(withIdentifier: targetId) as! targetController 
     self.navigationController?.pushViewController(detailView, animated: true) 

} 

しかし、私は、エラーメッセージ「宣言されていない型 『targetController』の使用」を参照してくださいすることができます。 いくつかのView Controllerにナビゲートするにはどうすればよいですか?

+0

で何の型キャストを必要としません – Hosny

答えて

0

オブジェクトを変数(インスタンス)にキャストすることはできません。

すべてのコントローラがUIViewControllerのサブクラスである場合targetControllerはないオブジェクトクラスであるため、しかし、あなたがすべての

let detailView = self.storyboard?.instantiateViewController(withIdentifier: targetId) 
self.navigationController?.pushViewController(detailView, animated: true) 
関連する問題