![](/img/trans.png)
[英]presenting ViewController with NavigationViewController swift
[英]Get the presenting viewController of viewController.view in swift
我正在嘗試獲取 viewController 視圖的呈現 viewController 這個想法是這樣的:我有一個
viewController = CategoriesViewController
我在花葯中展示它的觀點
viewController = HomeViewController
通過使用
CategoriesViewController.view
所以當我想到達
來自CategoriesViewController
HomeViewController
我這樣做
let vc = self.presentingViewController as? HomeViewController
但它告訴我它是零我試過
.parentViewController
它正在返回
CategoriesViewController
如果您想使用CategoriesViewController
更改HomeVieController
的變量,您可以創建自己的 協議。 您可以使用協議在不同的控制器之間進行通信。
protocol ChangeVariableProtocol {
func changeVar(variable: Int)
}
在協議本身中,您只聲明方法。 在您的CategoriesViewController
您將創建一個像這樣的委托變量
var changeVarDelegate: ChangeVariableProtocl?
每當您想更改CategoriesViewController
的變量時,您都會調用您的協議方法。
changeVarDelegate?.changeVar(10)
在 HomeViewController 中,您需要實現此協議並初始化 changeVarDelegate 變量。
extension HomeViewController: ChangeVarProtocol {
func changeVar(var: variable) {
// Implement your own logic here
self.valueToChange = variable
}
並確保在實例化CategoriesViewController
時初始化changeVarDelegate
。
希望這可以幫助!
CategoriesViewController
及其視圖中創建一個回調閉包屬性。viewDidLoad
將閉包交給視圖。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.