Closed LeoNatan closed 2 months ago
Hello,
Is the popup bar always attached at the bottom of the view in Apple Music?
@iDevelopper do you mean on iPad? I’m not sure.
Yes, on iPad.
But since yesterday I found it should be the case at 5m30:
Thanks. So it looks like iOS 17 (there wasn’t a tab bar in 17, only sidebar). It’s the look I intend to support, but once a more stable simulator is released.
Floating tab bar is now supported:
Looks like title marquee is broken with iOS 18.
The only issue I see currently is with the new UITabBarController.setTabBarHidden(_:animated:)
method, but it seems so broken as of beta 3, I am not yet willing to invest time into supporting it. It’s a small animation breakage when using animated: true
.
Hello @LeoNatan !
What about hidesBottomBarWhenPushed?
- (void)hBWT:(NSInteger)t iE:(BOOL)e d:(NSTimeInterval)duration
is no longer called by the system.
Hello!
Is this something new? I am on iOS 18.1 beta, and it still works.
I am on 18.0 beta 5. Apple doesn't offer me 18.1! Any idea?
Not sure yet. I'll check to see if there is a new Xcode with an updated SDK, and then debug. There are two options, either Apple renamed the method, or they hid it from the ObjC runtime. The latter will be more hard to fix.
It seems that 18.1 is not compatible with iPhone 14 Pro.
The current 18.1 build is older than the 18.0 build anyway.
I have Xcode 16 beta 5 (build 16A5221g) and I can't find 18.1 simulators
I found a fix. But Apple’s -[UITabBarController isTabBarHidden]
is broken (by Apple) in latest beta. 🤦♂️
I pushed, play around with it @iDevelopper
Thanks, I'll try. May I ask how you find this as I can't find any up-to-date Apple Runtime Headers. I know you have a repository but you don't update it anymore.
It’s not easy to maintain anymore. Instead, I use runtime inspection. There is _methodDescription
and _ivarDescription
.
Thank @LeoNatan!
It works!
Why do you say that isTabBarHidden is broken? What is not working? What would be the expected result for you?
isTabBarHidden
returns false
for instances where a controller with hidesBottomBarWhenPushed=true
was pushed. The tab bar is hidden, but isTabBarHidden
returns false
. This broke in the latest beta, and worked correctly before.
isTabBarHidden
returnsfalse
for instances where a controller withhidesBottomBarWhenPushed=true
was pushed. The tab bar is hidden, butisTabBarHidden
returnsfalse
. This broke in the latest beta, and worked correctly before.
According to Apple, in the feedback I files, this is the expected behavior.
Hello,
According to Apple, in the feedback I files, this is the expected behavior.
More details from them? How do they explain this is the expected behavior?
Here are the messages on that FB:
iOS 18 beta 5 broke isTabBarHidden with hidesBottomBarWhenPushed
If a controller, contained in a navigation controller and tab bar controller, is pushed with hidesBottomBarWhenPushed set to true, its tab bar gets hidden, however its isTabBarHidden property is incorrectly set to false. This is a degradation from beta 4.Thank you for filing this feedback report. We reviewed your report and determined the behavior you experienced is currently functioning as intended.
The behavior in beta 4 was the real bug. UITabBarController.isTabBarHidden is intended to be set by developers to control the hidden state of the iPad tab bar and the bottom tab bar. It does not reflect the active state of the bottom bar which may be changed by other components (like hidesBottomBarWhenPushed) so that the system does not unset the developer’s preference. To retrieve the active hidden state for the bottom UITabBar, read tabBar.isHidden (or check that it’s in the window).
You can close this feedback by selecting "Close Feedback" via the Actions button found above. This Feedback will no longer be monitored, and incoming messages will not be reviewed.Thanks for the explanation. Up to beta 4, it was possible to trigger the tab bar controller’s bottom bar reappearance after a push, which is now not possible. This is also a break in consistency with UINavigationController, which correctly reports on its bottom bar’s state and allows showing the bar with setToolbarHidden:NO.
This is still behaving correctly. The behavior as exhibited in Seed 4 was a bug. UIViewController.hidesBottomBarWhenPushed has always behaved such that once set, the tab bar becomes hidden and does not automatically reappear when pushed again. Instead, if you want to manually manage the hidden state, don’t use hidesBottomBarWhenPushed and just set the isTabBarHidden in each view controller’s viewWillAppear: to its own respective hidden state.
I think this is safe to close. iOS 18 support is complete.
New
UITabBarController
design on iPad is not yet supported. It is adaptive, so need inspect the trait collection most likely. It seems iPad simulator is completely broken as of beta 1, so this task will have to wait for Apple to not suck this badly.