我正在开发一个 Swift 包管理器包,其中需要包含 SwiftUI 视图。
每个 SwiftUI 视图都应该有一个预览。
我找到了一种方法,如果我将包方案更改为主要目标方案,它就会起作用。但是使用这种方式我必须一直在方案之间切换,并且每次我想运行包的预览时都需要构建主要目标。
是否可以直接从 SPM 包中以某种方式运行 SwiftUI 预览而不构建主要目标?
是否可以使用 SwiftUI 显示 TabItem 徽章?
使用 UIKit 很容易实现,就像这里描述的 ->
我没有找到使用 SwiftUI 执行此操作的方法。唯一可能的方法是使用场景 rootViewController 访问 UITabBarController 并直接修改其选项卡栏项目。
func setBadgeCount(_ count: Int) {
UIApplication.shared.applicationIconBadgeNumber = count
guard let delegate = app.connectedScenes.first?.delegate as? SceneDelegate else {
return
}
if let tabBarController = delegate.window?.rootViewController?.children.first {
tabBarController.viewControllers?.first?.tabBarItem.badgeValue = "\(count)"
}
}
Run Code Online (Sandbox Code Playgroud)
有什么想法如何使用原生 SwiftUI 方法来做到这一点吗?