Merge branch 'develop' into compose-rewrite

This commit is contained in:
Shadowfacts 2024-10-14 18:26:55 -04:00
commit 5be80d8e68
1 changed files with 13 additions and 8 deletions

View File

@ -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 {