【发布时间】:2016-01-11 00:15:33
【问题描述】:
我的应用程序的一部分有一个嵌入的主从部分。每个详细视图都使用自定义UIViewController。当我更改其中一个 UIViewControllers 中某些内容的值时,我需要能够将主 UITableViewController 中的表行之一变灰。
我见过的最接近解决方案的是使用NSNotificationCenter 来冒泡任何更改,尽管这感觉有点不整洁..
另一种解决方案是使用委托?但是我在Swift 中没有遇到任何关于如何使用它的示例解决方案或教程?
我还尝试通过向上导航层次结构来访问表格视图:
let navController = self.splitViewController!.viewControllers[0];
navController.tableView.reloadData()
我知道上面的示例是错误的,但我不知道如何以这种方式访问主视图,或者即使它是正确的方法。
哦,我想打电话给reloadData(),因为在主视图中有一些逻辑可以检查是否适用于灰色表格行的条件(我正在使用Core Data)
【问题讨论】:
-
那么问题是什么?我的意思是你面临什么问题?
-
问题确实在标题中。当元素(例如:开关)发生更改时,如何刷新 UISplitview 的主位中的 tableview?
-
是的,您还在正文中提到您知道如何处理它。那么您在实现上述代码时遇到了什么问题?
-
好吧,我已经确定了 3 种可能的方法来处理它,我更喜欢使用导航属性来完成它,我只是不知道如何访问这样的父 tableViewController 即 navController.parentTableViewController .tableview.reloadata()
-
我也不明白。你的 ViewController 是正确的,所以如果 parentTableViewController 在其中是公共的,那么应该没有任何问题。
标签: ios swift uitableview core-data