禁止分段控制段发生变化

时间:2016-06-24 14:17:59

标签: ios objective-c swift uisegmentedcontrol

我有一个奇怪的问题需要暂时修复我们的应用程序。由于可怕的原因,我们有一个分段控件有三个段,但我们在三个tableView数据源中有三个每个分段控件的实例(不要问,我们希望这不是最终的溶液...)

无论如何,由于这种糟糕的设置,当我们选择一个新的段时,分段控件的实例A会选择它的新索引。然后我们换出数据源并在表格上调用reloadData。现在我们将分段控件的实例B与选择的实例A具有相同的索引。然后,当我们选择原始段时,实例B将其索引设置为新索引,现在我们重新加载数据,这将导致显示实例A.但是,实例A仍然选择了旧索引,因此它的选择显示错误的索引。

我目前正在通过手动重置代理回调中的选定索引来解决此问题。然而,理想的是,告诉分段控件我不希望它改变它的选择,但我仍然希望用户能够与它进行交互。这有可能吗?我意识到这是一个可怕的解决方案,我们希望将来能够改变它,所以现在,对我有什么建议吗?

1 个答案:

答案 0 :(得分:1)

在最后一步中,当再次显示分段控件的实例A时,应编写cellForRowAtIndexPath以使用selectedSegmentIndex属性将段设置为所需的段。这样,当再次显示实例A时,它将显示正确的索引。