我正在尝试获取viewController视图的当前viewController这个想法是这样的:我有一个
viewController = CategoriesViewController
并且我正在花药中展示其观点
viewController = HomeViewController
通过使用
CategoriesViewController.view
所以当我想到达
[HomeViewController
from CategoriesViewController
]
我这样做
let vc = self.presentingViewController as? HomeViewController
但它告诉我这是零我尝试过
.parentViewController
它正在返回
CategoriesViewController
CategoriesViewController
及其视图中都创建一个回调闭包属性。viewDidLoad
中,将闭合移交给视图。如果要使用HomeVieController
更改CategoriesViewController
中的变量,则可以创建自己的protocol。您可以使用协议在不同的控制器之间进行通信。
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
。
希望这会有所帮助!