gpt4 book ai didi

ios - viewDidDisappear 永远不会在自定义选项卡中被调用

转载 作者:行者123 更新时间:2023-11-30 14:04:23 25 4
gpt4 key购买 nike

我正在使用下拉菜单,想要实现与选项卡栏相同的行为。比如我想随时切换vc1,vc2,vc3并保留原始数据。我所做的是使用 willMoveToParentViewController。

   func didSelectItem(indexPath: Int){
// Initialize View controllers
switch(indexPath){
case 1:
self.removeFromParentViewController()
vc1.title = "Learning Stories"
self.addChildViewController(vc1)
self.view.addSubview(vc1.view)
vc1.willMoveToParentViewController(self)

case 2:
self.removeFromParentViewController()
vc2.title = "Group Stories"
self.addChildViewController(vc2)
self.view.addSubview(vc2.view)
vc2.willMoveToParentViewController(self)


default:
self.removeFromParentViewController()
self.addChildViewController(vc3)
self.view.addSubview(vc3.view)
vc3.willMoveToParentViewController(self)
}
}

但是在vc2和vc3中,viewDidappear只调用一次,而viewDidappear永远不会被调用。我知道它应该只适用于流行、呈现等,但标签栏是如何工作的呢?在切换每个 View Controller 时保留数据。

最佳答案

你通过添加 view/vc 来绕过 View 生命周期的东西,看起来因为它们实际上并没有消失,当你交换到另一个看起来像的 View Controller 时,你永远不会删除其他 2 个 View Controller 。因此从技术上讲,它们都被添加到同一个 View 中,但每次调用 addSubview 时,您只是将 View 放在其他 View 之上。尽管它们不可见,但它们实际上并没有去任何地方,这就是为什么它不调用 viewDidDisappear

关于ios - viewDidDisappear 永远不会在自定义选项卡中被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32598522/

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