gpt4 book ai didi

ios - Swift - 如何在调用 removeFromSuperview() 后得到通知?

转载 作者:可可西里 更新时间:2023-11-01 01:18:35 26 4
gpt4 key购买 nike

我有两个 View Controller 。应用程序启动时会加载第一个 VC,然后如果点击某个按钮,则会使用以下代码调用 secondVC:

    let popOverVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "tagsStory") as! TagsVC
self.addChildViewController(popOverVC)
popOverVC.view.frame = self.view.frame
self.view.addSubview(popOverVC.view)
popOverVC.didMove(toParentViewController: self)

在 secondV 中,当点击某个按钮时,secondVC 被删除,firstVC 通过以下代码返回给用户:

self.view.removeFromSuperview()

我的问题是,当第一个 VC 中的第二个 VC 被删除时,我如何得到通知?

我尝试使用 viewDidAppear、viewWillAppear、willMove...但还没有任何效果。

最佳答案

如果您只想进行函数调用,只需使用通知即可。在您的父 View Controller 中,注册通知以接收函数调用。

NotificationCenter.default.addObserver(self, selector: #selector(listnerFunction), name: NSNotification.Name(rawValue: "notificationName"), object: nil)

func listnerFunction() {
tableView.reloadData()
}

当 View Controller 被销毁时忘记删除这个监听器

deinit {
NotificationCenter.default.removeObserver(self, name: NSNotification.Name(rawValue: "notificationName"), object: nil)
}

然后在您的 subview Controller 中,当您要将其从父 View Controller 中删除时,以这种方式调用已注册的通知函数

NotificationCenter.default.post(name: NSNotification.Name(rawValue: "notificationName"), object: nil, userInfo: nil) 

关于ios - Swift - 如何在调用 removeFromSuperview() 后得到通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45079948/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com