2016-10-16 10 views
0

は、私は次のコードでの基本的なビューコントローラを持っている:子テーブルビューコントローラがタッチやスクロールに対して応答しないのはなぜですか?

class List2ViewController: UIViewController { 

    @IBOutlet weak var segmentedControl: UISegmentedControl! 
    @IBOutlet weak var mapView: MKMapView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     segmentedControl.addTarget(self, action: #selector(showDummyViewController), for: UIControlEvents.valueChanged) 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


    func showDummyViewController(){ 

     let controller = storyboard?.instantiateViewController(withIdentifier: "tableController") 
      if let controller = controller { 
      controller.view.frame = view.bounds 
      view.addSubview(controller.view) 
      addChildViewController(controller) 
      controller.didMove(toParentViewController: self) 
     } 
    } 
} 

あなたは、私はテーブルビューコントローラであることを起こる、子ビューコントローラを追加してい見ることができるように。次のようにこのテーブルビューコントローラのためのコードは次のとおりです。

class MyTableViewController: UITableViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     let nib = UINib(nibName: CustomCellTypeIdentifiers.NoResultCell, bundle: nil) 
     tableView.register(nib, forCellReuseIdentifier: CustomCellTypeIdentifiers.NoResultCell) 

    } 

    override func numberOfSections(in tableView: UITableView) -> Int { 
     return 1 
    } 

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return 100 
    } 


    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: CustomCellTypeIdentifiers.NoResultCell, for: indexPath) as! CellType 
     return cell 
    } 

} 

私の問題は私のテーブルビューは、子コントローラとして追加されたとき、それは任意のタッチ入力に応答しないということです。テーブルビューが表示されますが、スクロールしたり、行を選択したりしません。さらに、私の細胞は列に現れません。この実装で私が見逃していることを説明していただけますか?前もって感謝します。

相続人は、結果の画像:私はここを参照してくださいenter image description here

+0

あなたのtableView userIntractionEnabledを確認してください。 – Joe

+0

セルが作成されている場合、デバッグビュー階層をチェックインします。 DataSourceを設定していない可能性があり、tableViewの代理人ですか? – Rikh

+0

@Rikhストーリーボードの標準のテーブルビューコントローラーで、データソースとデリゲートが自動的に設定されます。そしてはい、細胞が作られています。 –

答えて

0

一つの問題:

let cell = tableView.dequeueReusableCell(withIdentifier: CustomCellTypeIdentifiers.NoResultCell, for: indexPath) 

は次のようにする必要があります:

CustomTableViewCellNameは値によって置き換えられるべき
let cell = tableView.dequeueReusableCell(withIdentifier: CustomCellTypeIdentifiers.NoResultCell, for: indexPath) as? CustomTableViewCellName 

CustomCellTypeIdentifiers.NoResultCellのカスタムセル名、つまりあなたのnibNameも

let nib = UINib(nibName: CustomCellTypeIdentifiers.NoResultCell, bundle: nil) 
+0

あなたの答えをありがとう、それは私の部分で不注意なミスでした。私はそれを修正し、セルをセルクラス名に降格した。ただし、テーブルビューは空のままで、行の選択とスクロールに応答しません。 –

+0

Storyboardに追加されたUItableviewcontrollerのクラス名をMyTableViewControllerとして指定しましたか? –

関連する問題