は、私は次のコードでの基本的なビューコントローラを持っている:子テーブルビューコントローラがタッチやスクロールに対して応答しないのはなぜですか?
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
}
}
私の問題は私のテーブルビューは、子コントローラとして追加されたとき、それは任意のタッチ入力に応答しないということです。テーブルビューが表示されますが、スクロールしたり、行を選択したりしません。さらに、私の細胞は列に現れません。この実装で私が見逃していることを説明していただけますか?前もって感謝します。
あなたのtableView userIntractionEnabledを確認してください。 – Joe
セルが作成されている場合、デバッグビュー階層をチェックインします。 DataSourceを設定していない可能性があり、tableViewの代理人ですか? – Rikh
@Rikhストーリーボードの標準のテーブルビューコントローラーで、データソースとデリゲートが自動的に設定されます。そしてはい、細胞が作られています。 –