您好,我正在尝试显示一些通知数据。在我的通知中,我有一个通知 ID,可以根据推送的信息做出不同的反应。
我只是看不到那些新的 UNNotificationPresentationOptions 是什么。
在我的
userNotificationCenter(_: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)
Run Code Online (Sandbox Code Playgroud)
我有
if notification.request.content.userInfo[keyName] as? String == "someId" {
// Bla bla stuffs
if #available(iOS 14.0, *) {
completionHandler([.list, .banner, .sound])
} else {
completionHandler([.alert])
}
} else if ...
Run Code Online (Sandbox Code Playgroud)
但是当使用 [.banner] 或 [.list] 或 [.banner, .list] (没有 .alert)时,我在前台什么也没有。在理想的情况下,我希望在通知中心列出通知并在我的应用程序中显示相关信息(在调用完成处理程序之前)。
我使用这些选项正确吗?
您好,我在这里遇到了一个问题,在 ios13 或 ios14 上运行时,我的 .sheet() 视图之间没有一致的行为
我有这样的看法:
@State private var label: String = ""
@State private var sheetDisplayed = false
///Some code
var body: some View {
VStack {
Button(action: {
self.label = "A label"
self.isDisplayed = true
}) {
Text("test")
}
}.sheet(isPresented: $sheetDisplayed, onDismiss: {
self.label = ""
}) {
Text(self.label)
}
}
Run Code Online (Sandbox Code Playgroud)
在 ios 13 上,这项工作按预期进行 btn 单击 -> 设置标签 -> 调用表 -> 在文本视图中显示“A 标签”。
在 ios14 上,我在工作表关闭时在 self.label 中得到一个空字符串,因此它不显示任何内容。
我错过了什么吗?这是 iOS 14 的错误还是我在 ios13 上弄错了并得到了纠正。
PS:我有几个其他变量在我简化的闭包中传递。
我的应用程序目前面临 pb 问题。我想对由 SwiftUI TabView 控制的项目的插入和删除进行动画处理。
这是重现问题的简单视图
struct ContentView: View {
@State private var selection: Int = 1
var body: some View {
TabView(selection: $selection.animation(),
content: {
Text("Tab Content 1")
.transition(.slide) //could be anything this is for example
.tabItem { Text("tab1") }.tag(1)
.onAppear() {print("testApp")}
.onDisappear(){print("testDis")}
Text("Tab Content 2")
.transition(.slide)
.tabItem { Text("tab2") }.tag(2)
})
}
}
Run Code Online (Sandbox Code Playgroud)
当点击 tabItem 时,它会立即从“选项卡内容 1”切换到“选项卡内容 2”,我想为其设置动画(而不是选项卡项按钮实际的选项卡内容)。和被按预期调用onAppear,onDisapear因此所有转换都应该被触发。
如果有人有想法开始合作,我会很高兴
谢谢