我正在尝试获取viewController视图的显示viewController--这个想法是这样的:
viewController = CategoriesViewController
我在另一个世界里展示它的观点
viewController = HomeViewController
通过使用
CategoriesViewController.view所以当我想到达
HomeViewController来自CategoriesViewController
我这样做
let vc = self.presentingViewController as? HomeViewController
但它告诉我这是零,我尝试了
.parentViewController
它又回来了
CategoriesViewController
发布于 2020-03-24 17:19:46
如果您想使用HomeVieController更改CategoriesViewController中的变量,您可以创建自己的协议。您可以使用协议在不同控制器之间进行通信。
protocol ChangeVariableProtocol {
func changeVar(variable: Int)
}在协议本身中,您只声明方法。在您的CategoriesViewController中,您将创建像这样的委托Varibale
var changeVarDelegate: ChangeVariableProtocl?
每当您想在CategoriesViewController中更改变量时,就调用您的协议方法。
changeVarDelegate?.changeVar(10)
在HomeViewController中,您需要实现该协议并初始化changeVarDelegate变量。
extension HomeViewController: ChangeVarProtocol {
func changeVar(var: variable) {
// Implement your own logic here
self.valueToChange = variable
}并确保在实例changeVarDelegate时初始化CategoriesViewController。
希望这能有所帮助!
发布于 2020-03-24 16:55:38
CategoriesViewController及其视图中创建回调闭包属性。viewDidLoad中,将闭包交给视图。https://stackoverflow.com/questions/60835236
复制相似问题