首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >没有调用viewWillAppear显然是因为我的视图层次结构

没有调用viewWillAppear显然是因为我的视图层次结构
EN

Stack Overflow用户
提问于 2020-11-17 20:24:48
回答 1查看 154关注 0票数 3

这似乎是一个有据可查的问题,但在线解决方案尚未奏效。这里只是一个没有给我提供一个有效答案的帖子的示例列表:

我收集到,viewWillAppear没有被调用的问题与我的视图层次结构有关。我使用的选项卡控制器不是视图层次结构的最高部分。选项卡控制器的视图控制器之一是导航控制器的根视图控制器。这就是我试图获得一个工作的viewWillAppear或viewDidAppear的地方。以下是我尝试过的不起作用的方法。在选项卡控制器中,我添加了以下代码:

代码语言:javascript
运行
复制
let nav2 = UINavigationController(rootViewController: locationsVC)
nav2.beginAppearanceTransition(true, animated: false)
//...//
viewControllers = [ nav1, nav2, nav3, nav4 ]

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    for vc in self.children {
         vc.beginAppearanceTransition(true, animated: animated)
    }
}

在现场代表中,这是我的代码:

代码语言:javascript
运行
复制
guard let windowScene = (scene as? UIWindowScene) else { return }
self.window = UIWindow(windowScene: windowScene)
let rootVC = NewOrExistingViewController()
rootVC.beginAppearanceTransition(true, animated: false)
let rootNC = UINavigationController(rootViewController: rootVC)
rootNC.navigationController?.navigationBar.isHidden = true
rootNC.beginAppearanceTransition(true, animated: false)
self.window?.rootViewController = rootNC
let tbc = TabBarViewController()
tbc.selectedIndex = 0
tbc.beginAppearanceTransition(true, animated: false)
rootVC.add(asChildViewController: tbc)
EN

Stack Overflow用户

发布于 2020-11-18 01:56:42

尝试在rootVC.add(asChildViewController: tbc)之前调用rootVC.beginAppearanceTransition(true, animated: false)

在调用func beginAppearanceTransition(_: animated:)之前,您的所有子VC都需要是父级的子级。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64882795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档