Remove UITabBarController workaround on iOS 18.1
This commit is contained in:
parent
f4b51c06c1
commit
12bab71b17
|
@ -454,15 +454,20 @@ extension NewMainTabBarViewController {
|
|||
extension NewMainTabBarViewController: UITabBarControllerDelegate {
|
||||
func tabBarController(_ tabBarController: UITabBarController, shouldSelectTab tab: UITab) -> Bool {
|
||||
if tab.identifier == Tab.compose.rawValue {
|
||||
let currentTab = selectedTab
|
||||
// returning false for shouldSelectTab doesn't prevent the UITabBar from being updated (FB14857254)
|
||||
// returning false and then setting selectedTab=tab and selectedTab=currentTab seems to leave things in a bad state (currentTab's VC is on screen but in the disappeared state)
|
||||
// so return true, and then after the tab bar VC has finished updating, go back to currentTab
|
||||
DispatchQueue.main.async {
|
||||
self.selectedTab = currentTab
|
||||
if #unavailable(iOS 18.1) {
|
||||
let currentTab = selectedTab
|
||||
// returning false for shouldSelectTab doesn't prevent the UITabBar from being updated (FB14857254)
|
||||
// returning false and then setting selectedTab=tab and selectedTab=currentTab seems to leave things in a bad state (currentTab's VC is on screen but in the disappeared state)
|
||||
// so return true, and then after the tab bar VC has finished updating, go back to currentTab
|
||||
DispatchQueue.main.async {
|
||||
self.selectedTab = currentTab
|
||||
}
|
||||
compose(editing: nil)
|
||||
return true
|
||||
} else {
|
||||
compose(editing: nil)
|
||||
return false
|
||||
}
|
||||
compose(editing: nil)
|
||||
return true
|
||||
} else if let selectedTab,
|
||||
selectedTab == tab,
|
||||
let nav = selectedViewController as? any NavigationControllerProtocol {
|
||||
|
|
Loading…
Reference in New Issue