iOS 13在标签栏子视图控制器viewWillAppear中未调用

问题描述 投票:1回答:1

我有一个标签栏控制器,并在其中添加了五个视图控制器,如下所示:

class InfluencerMainTabBarController: UITabBarController {
override func viewDidLoad() {
    super.viewDidLoad()

    let findWorkVC = UINavigationController.init(rootViewController: InfluencerFindWorkVC.instantiate(fromAppStoryboard: .Influencer))
    findWorkVC.tabBarItem = UITabBarItem(title: nil, image: #imageLiteral(resourceName: "ic_home"), tag: 0)

    let inboxVC = UINavigationController.init(rootViewController: InfluencerInboxVC.instantiate(fromAppStoryboard: .Inbox))
    inboxVC.tabBarItem = UITabBarItem(title: nil, image: #imageLiteral(resourceName: "ic_inbox"), tag: 1)

    let workDiaryVC = UINavigationController.init(rootViewController: InfluencerWorkDiaryVC.instantiate(fromAppStoryboard: .Influencer))
    workDiaryVC.tabBarItem = UITabBarItem(title: nil, image: #imageLiteral(resourceName: "ic_work"), tag: 2)

    let notificationsVC = InfluencerNotificationsVC.instantiate(fromAppStoryboard: .Influencer)
    notificationsVC.tabBarItem = UITabBarItem(title: nil, image: #imageLiteral(resourceName: "ic_notification"), tag: 3)

    let accountVC = InfluencerProfileVC.instantiate(fromAppStoryboard: .Influencer)
    accountVC.tabBarItem = UITabBarItem(title: nil, image: #imageLiteral(resourceName: "ic_profile"), tag: 4)

    let tabBarList = [findWorkVC, inboxVC, workDiaryVC, notificationsVC, accountVC]

    viewControllers = tabBarList

    self.tabBar.tintColor = UIColor.appPurpleColor
    self.tabBar.barTintColor = UIColor.white
}
}

问题是我的第一个控制器,它是findWorkVC,它的viewWillAppear被调用,但是当我单击任何其他视图控制器时,它们的viewWillAppear没有被调用。

它在iOS 13之前的设备上运行良好,但在iOS 13上它不仅被调用,而且导航栏的高度小于iOS 12导航栏的高度,您可以看到导航栏中的标题与状态栏文本重叠。

enter image description here

ios swift uinavigationcontroller uitabbarcontroller viewwillappear
1个回答
1
投票
© www.soinside.com 2019 - 2024. All rights reserved.