我在另外两个闭包(handleMentionTap
(第二个闭包)和entireDescView.customize
(第一个闭包)中有一个闭包(description
)。现在我想调用位于同一个类中的函数pushProfileController(of: String)
(为了推送另一个视图控制器(newController
)。函数需要在闭包内调用,因为它在它之外调用它们导致内存泄漏的原因我目前还不知道(我使用的是一个名为ActiveLabel的库,我自己也没有写过。)但是,newController没有被推送(即使我使用{ {1}}正如关于类似问题的stackoverflow的一些答案中所建议的那样。然而,DispatchQueue.main.async
似乎已创建及其数据集(我使用newController
打印数据)。如何推送控制器好像它在关闭之外(例如var passedData: String? { didSet { print(passedData) } }
?我真的很感谢你的帮助!
self.pushProfileController(of: username)
答案 0 :(得分:2)
您检查过navigationController?
是否存在?
在尝试推送viewController之前尝试添加以下内容:
func pushProfileController(of: String) {
if self.pushingViewController == false {
self.pushingViewController = true
DispatchQueue.main.async {
guard let navController = self.navigationController else { return print("navigationController was nil") }
let newController = NewController()
newController.passedData = of //passedData is a string
navController.pushViewController(newController, animated: true)
}
self.pushingViewController = false
}
}