Post

Replies

Boosts

Views

Activity

Reply to Disable new tab bar look
That's not possible as of now. I have filed a feedback for this: FB13840897 In my app I did adopt UISplitViewController to show a sidebar when the window is large enough or a tab bar in compact size classes. For that to work I had to do custom code to restore view hierarchies when switching size classes. Now, UITabBarController has this behavior for free, but I don’t want to adopt the new top tab bar in my app, because it breaks my layout and I just don’t like the look and feel of it. It would be great to have an option to hide the top tab bar, while keeping the sidebar visible and show the bottom tab bar when switching to compact size class.
Topic: UI Frameworks SubTopic: General Tags:
Jun ’24
Reply to Disable new tab bar look
I have taken the time to write a blog post about all the issues I see with this new tab/sidebar design. If you're interested feel free to take a look and file similar feedback so we can have a better system in the Fall! https://gamery.app/blog/about-the-new-tabs/
Topic: UI Frameworks SubTopic: General Tags:
Jun ’24
Reply to Stickers broken on iOS 18 / iPhone 16 after restoring from backup
For science I did a few more restores and I think I found the issue. iPhone 16 ships with a pre-final special build of iOS 18. During setup I restored my iPhone 15 backup onto the device. After setup I was greeted with a new iOS 18.0 update, which brings it up to the final, public build. I think the pre-release build broke the stickers database. When I tried to restore the iPhone 16 backup again (with the broken database) it obviously did not work. So I tried restoring the iPhone 15 iCloud backup (where the stickers still worked) to the now final iOS 18.0 update. And guess what, everything's fine and dandy. It appears the issue truly is that iOS 18.0 build the phone is shipping with. Why or how many people experience this issue, I don't know, but from what I gather from forums, it's quite a few.
Topic: Community SubTopic: Apple Developers Tags:
Sep ’24
Reply to Core Data, Swift 6, Concurrency and more
I have filed FB18216356 on the crash and FB18216198 for the warnings which are caused by having everything be on the MainActor because of the defaultIsolation settings, but the Core Data model creates a class gen without specifying nonisolated, which makes it impossible to modify a managed object from a background context?
Jun ’25
Reply to UITabBarController ignores UITab view controllers when in UITabGroup
Thanks! So I was dumb, though the documentation could be a bit clearer on this. Why is this tab showing up even though it should only be in the sidebar? Happens on both phone and iPad in compact size classes, does not happen for the iPad top tab bar. collectionsTabGroup = UITabGroup(title: "Collections", image: nil, identifier: "collections", children: []) collectionsTabGroup.managingNavigationController = UINavigationController() collectionsTabGroup.preferredPlacement = .sidebarOnly
Topic: UI Frameworks SubTopic: UIKit
Jul ’25
Reply to Replacing the Preferences item in a menu bar
Looks like this is something that works for now, unintended or not. Should that break in the future, I'll add my settings menu item alongside the system one. Thanks! UIMainMenuSystem.shared.setBuildConfiguration(config) { builder in var items: [UIMenuElement] = [] items.append( UIKeyCommand( title: String(localized: "Settings..."), image: UIImage(systemName: "gearshape"), action: #selector(MainTabBarController.showSettings), input: ",", modifierFlags: [.command] ) ) items.append( UIKeyCommand( title: String(localized: "Editor Settings..."), image: UIImage(systemName: "textformat"), action: #selector(MainTabBarController.showSettingsViewController), input: ",", modifierFlags: [.command, .alternate] ) ) items.append( UICommand( title: String(localized: "System Settings..."), image: UIImage(systemName: "gear"), action: #selector(MainTabBarController.showSettingsViewController2) ) ) let menu = UIMenu( title: "Gamery", identifier: .application, options: .displayInline, children: items ) builder.replace(menu: .application, with: menu) }
Topic: UI Frameworks SubTopic: UIKit Tags:
Jul ’25
Reply to How to use a child context in SwiftData?
An engineer answered this in the WWDC Slack. SwiftData does currently not support child contexts. A way around this would be to use a custom context, do the edits there and then apply them back to the mainContext and save it.
Topic: Programming Languages SubTopic: Swift Tags:
Replies
Boosts
Views
Activity
Jun ’23
Reply to SwiftData: Is syncing changes across ModelContext’s working in Beta 1?
A context will save automatically periodically and on certain system events like didEnterBackground. If you want to save in the moment, you need to call context.save(). It might be possible that the autosave feature is buggy in Seed 1. The UI should update even if you don't manually save though.
Replies
Boosts
Views
Activity
Jun ’23
Reply to Disable automatic iCloud sync with SwiftData
Has anyone tried with the latest iOS 17.2 beta? At first glance it's fixed as of iOS 17.2 beta 2, at least it does not crash any more with non-optional properties as it does on iOS 17.1 and below. I also don't see any attempts to sync in the console. So it seems like I can finally start bringing my app to SwiftData.
Replies
Boosts
Views
Activity
Nov ’23
Reply to Disable new tab bar look
That's not possible as of now. I have filed a feedback for this: FB13840897 In my app I did adopt UISplitViewController to show a sidebar when the window is large enough or a tab bar in compact size classes. For that to work I had to do custom code to restore view hierarchies when switching size classes. Now, UITabBarController has this behavior for free, but I don’t want to adopt the new top tab bar in my app, because it breaks my layout and I just don’t like the look and feel of it. It would be great to have an option to hide the top tab bar, while keeping the sidebar visible and show the bottom tab bar when switching to compact size class.
Topic: UI Frameworks SubTopic: General Tags:
Replies
Boosts
Views
Activity
Jun ’24
Reply to Preview crashes consistency in Xcode 16 beta
Same issue here (FB13861460). A fresh project works just fine, so it appears to be something specific to how my project is set up. I can't read anything useful from the error log, though.
Replies
Boosts
Views
Activity
Jun ’24
Reply to Disable new tab bar look
I have taken the time to write a blog post about all the issues I see with this new tab/sidebar design. If you're interested feel free to take a look and file similar feedback so we can have a better system in the Fall! https://gamery.app/blog/about-the-new-tabs/
Topic: UI Frameworks SubTopic: General Tags:
Replies
Boosts
Views
Activity
Jun ’24
Reply to SwiftUI Navbar on VisionOS like the photos app?
let customNavBarAppearance = UINavigationBarAppearance() customNavBarAppearance.configureWithTransparentBackground() Using a transparent navigation bar should do the trick.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Jun ’24
Reply to Stickers broken on iOS 18 / iPhone 16 after restoring from backup
For science I did a few more restores and I think I found the issue. iPhone 16 ships with a pre-final special build of iOS 18. During setup I restored my iPhone 15 backup onto the device. After setup I was greeted with a new iOS 18.0 update, which brings it up to the final, public build. I think the pre-release build broke the stickers database. When I tried to restore the iPhone 16 backup again (with the broken database) it obviously did not work. So I tried restoring the iPhone 15 iCloud backup (where the stickers still worked) to the now final iOS 18.0 update. And guess what, everything's fine and dandy. It appears the issue truly is that iOS 18.0 build the phone is shipping with. Why or how many people experience this issue, I don't know, but from what I gather from forums, it's quite a few.
Topic: Community SubTopic: Apple Developers Tags:
Replies
Boosts
Views
Activity
Sep ’24
Reply to Core Data, Swift 6, Concurrency and more
UPDATE: The crash only happens when the option "Dynamic Actor Isolation" is enabled in Build Settings, Swift Compiler - Upcoming Features. I will read up on what this does and file a feedback if needed.
Replies
Boosts
Views
Activity
Jun ’25
Reply to Core Data, Swift 6, Concurrency and more
I have filed FB18216356 on the crash and FB18216198 for the warnings which are caused by having everything be on the MainActor because of the defaultIsolation settings, but the Core Data model creates a class gen without specifying nonisolated, which makes it impossible to modify a managed object from a background context?
Replies
Boosts
Views
Activity
Jun ’25
Reply to Availability of corner and containerConcentric in iOS 26
Looks like the second beta does not have them yet either.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Jun ’25
Reply to UITabBarController ignores UITab view controllers when in UITabGroup
Thanks! So I was dumb, though the documentation could be a bit clearer on this. Why is this tab showing up even though it should only be in the sidebar? Happens on both phone and iPad in compact size classes, does not happen for the iPad top tab bar. collectionsTabGroup = UITabGroup(title: "Collections", image: nil, identifier: "collections", children: []) collectionsTabGroup.managingNavigationController = UINavigationController() collectionsTabGroup.preferredPlacement = .sidebarOnly
Topic: UI Frameworks SubTopic: UIKit
Replies
Boosts
Views
Activity
Jul ’25
Reply to UITabBarController ignores UITab view controllers when in UITabGroup
Seems like UITabBarController.compactTabIdentifiers is the way to go to hide certain tabs. But how in the world can I have a UITabGroup "Collections" which collapses back into the "Library" tab when in compact size?
Topic: UI Frameworks SubTopic: UIKit
Replies
Boosts
Views
Activity
Jul ’25
Reply to iPad menu bar and multiple windows
Thanks. That seems like a reasonable approach that I totally did not think about. I now let my root view controller handle this and it works perfectly fine.
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
Boosts
Views
Activity
Jul ’25
Reply to Replacing the Preferences item in a menu bar
Looks like this is something that works for now, unintended or not. Should that break in the future, I'll add my settings menu item alongside the system one. Thanks! UIMainMenuSystem.shared.setBuildConfiguration(config) { builder in var items: [UIMenuElement] = [] items.append( UIKeyCommand( title: String(localized: "Settings..."), image: UIImage(systemName: "gearshape"), action: #selector(MainTabBarController.showSettings), input: ",", modifierFlags: [.command] ) ) items.append( UIKeyCommand( title: String(localized: "Editor Settings..."), image: UIImage(systemName: "textformat"), action: #selector(MainTabBarController.showSettingsViewController), input: ",", modifierFlags: [.command, .alternate] ) ) items.append( UICommand( title: String(localized: "System Settings..."), image: UIImage(systemName: "gear"), action: #selector(MainTabBarController.showSettingsViewController2) ) ) let menu = UIMenu( title: "Gamery", identifier: .application, options: .displayInline, children: items ) builder.replace(menu: .application, with: menu) }
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
Boosts
Views
Activity
Jul ’25