我有一个带有以下代码的基本视图控制器:
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
}
}
我的问题是,当我将表视图添加为子控制器时,它不响应任何触摸输入。表格视图显示出来,但是它不会滚动或选择任何行。此外,我的单元格不显示在行中。您能否解释一下该实现中缺少的内容?先感谢您。
以下是结果的图片:
最佳答案
我在这里看到的一个问题:
let cell = tableView.dequeueReusableCell(withIdentifier: CustomCellTypeIdentifiers.NoResultCell, for: indexPath)
应该是这样的:
let cell = tableView.dequeueReusableCell(withIdentifier: CustomCellTypeIdentifiers.NoResultCell, for: indexPath) as? CustomTableViewCellName
其中
CustomTableViewCellName
应替换为CustomCellTypeIdentifiers.NoResultCell
的值,即您的自定义单元名称,即您的nibName也:let nib = UINib(nibName: CustomCellTypeIdentifiers.NoResultCell, bundle: nil)
关于ios - 为什么子表 View Controller 对触摸和滚动不响应?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40067896/