这是我的简化的SwiftUI视图的样子:
这个视图之前是一个UIKit视图,所以当我导航到NotificationsView时,标题需要一毫秒才会出现,返回按钮的文本会消失(这正是我想要的-只有箭头)。请参见gif: 标题在一毫秒后出现 以下是我显示NotificationsView的方法:
即使使用
我在一个演示项目中尝试了这个方法,其中有两个视图,相同的代码运行良好,只是这两个视图都是SwiftUI。
对于如何修复这个问题有什么想法吗?
struct NotificationsView: View {
var body: some View {
if #available(iOS 16.0, *) {
notificationsView.toolbarRole(.editor)
} else {
notificationsView
}
}
private var notificationsView: some View {
NavigationView {
ScrollView {
…
}
}.toolbar {
ToolbarItem(placement: .principal) {
Text("Notifications")
.font(.headline)
.foregroundColor(.gray)
}
}
}
}
这个视图之前是一个UIKit视图,所以当我导航到NotificationsView时,标题需要一毫秒才会出现,返回按钮的文本会消失(这正是我想要的-只有箭头)。请参见gif: 标题在一毫秒后出现 以下是我显示NotificationsView的方法:
let view = notificationsViewProvider.create(notifications: notifications)
let vc = UIHostingController(rootView: view)
rootNavigationController.setNavigationBarHidden(false, animated: false)
rootNavigationController.show(vc, sender: self)
即使使用
animated: true
,它仍然相似,输出结果没有太大变化。我在一个演示项目中尝试了这个方法,其中有两个视图,相同的代码运行良好,只是这两个视图都是SwiftUI。
对于如何修复这个问题有什么想法吗?
vc.navigationItem.backButtonTitle = ""
和vc.navigationItem.backButtonDisplayMode = .minimal
,但是没有起到作用。vc.navigationItem.title = "通知"
是可以的,但是我无法通过这种方式编辑颜色。 - undefined