我有一个表格视图控制器(A),该控件以模态展示了一个导航控制器,另一个表格视图控制器(B)作为其根视图。当从A点按一个单元格时显示B,但是通过向下滑动B消除B时该单元格仍处于选中状态。
我一直在尝试从B访问A而不尝试使用委托,因为当用户决定向下滑动以消除B而不是使用取消按钮(取消展开)时,将所有内容设置为仅取消选择某些行似乎太过分了搜索以取消选择行。
我尝试取消选择A中viewWillAppear()
和viewDidAppear()
A中的行,但这似乎不起作用。
我已经presentationControllerDidDismiss(presentationController:)
在B中实现了该功能,因此当B被正确关闭时,我可以调用A取消选择行,但是我在访问A时遇到了麻烦。
我尝试手动添加和调用与取消按钮调用相同的序列,以重用相同的取消选择实现
class TableViewControllerB: UITableViewController, UIAdaptivePresentationControllerDelegate {
// ...
func presentationControllerDidDismiss(_ presentationController: UIPresentationController) {
self.performSegue(withIdentifier: "cancelUnwind", sender: self)
}
}
并且我也尝试通过访问A presentingViewController
,但是由于某种原因,即使B是通过A模态呈现的,它也无效。
我不确定在清除B时是否还可以访问A或如何取消选择A的行。任何想法将不胜感激。
在模态显示它之前,可以将tableView作为可选变量从A传递到B。
class tableViewControllerB {var tableViewA:UiTableView?}
在A中实例化控制器B时,请设置此变量,然后显示控制器。当它被关闭时,使用indexPathForSelectedRow https://developer.apple.com/documentation/uikit/uitableview/1615000-indexpathforselectedrow
取消选择单元格。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句