我怀疑如何在分段控制器中维护两个tableviews和一个视图控制器。在segment=0
我希望显示第一个tableview,在segment=1
显示第二个tableview,segment=2
显示一个视图控制器,是否可以?
答案 0 :(得分:1)
是。有可能的。有两种方式。
答案 1 :(得分:0)
你真的不需要2 Tableview
。根据细分选择调用[tableview reloaddata]
,将您的数据显示在该细分受众群部分上。这节省了很多努力和操作。
答案 2 :(得分:0)
我认为scrollView可以帮助您解决问题:
只需在scrollView上添加两个tableViews并使用segmentedController方法设置scrollView的contentOffset.x
同样,您可以在scrollView上添加ViewController,然后单击两个tableView并通过单击segment == 2
滚动到它希望我的建议可以帮助你:)
答案 3 :(得分:0)
无论您使用的是一个还是多个表格视图,其主要思想都是处理选择事件。
如果在情节提要中创建了分段控件,则可以使用@IBAction出口,也可以使用'addTarget'语法。
例如:
mySegmentedControl.addTarget(self, #selector(myHandlerMethod(_:), for: .valueChanged)
其中处理程序方法类似于:
(第一种情况)
@IBAction func myHandlerMethod(_ sender: UISegmentedControl) {
}
(第二种情况)
@objc func myHandlerMethod(_ sender: UISegmentedControl) {
if sender.selectedSegmentIndex == 1 {
// handle your table view reloading or switching between first and second table views.
} else {
// otherwise, do something else
}
}
一些其他想法:
在使用单个表视图并为其提供不同的数据集时,我会与其他人一致。如果数据集之间的内容格式在结构和含义上不同,则可以使用UITableViewCell的不同子类来表示数据。
也许值得考虑使用子视图控制器而不是普通视图/表视图。这样,您可以封装与要呈现在视图控制器中的每个特定场景有关的逻辑,并独立地对其进行管理。