【发布时间】:2020-11-06 03:09:58
【问题描述】:
我将最低部署目标从 iOS 14.0 降低到 iOS 13.0。然后我得到了这个错误:
'navigationBarTitle(_:displayMode:)' 仅适用于 iOS 14.0 或更高版本
但是,documentation 表示它在 iOS 13.0-14.2 中可用,并且之前发布的 SO answers(在 iOS 13 是最新版本时)也使用了它。
是不是因为“弃用”了我不能使用?但是为什么我可以在 iOS 14.0 中使用它呢?
编辑:
在尝试重现后,它似乎只有在我没有将title 存储在属性中时才有效。
import SwiftUI
struct ContentView: View {
var body: some View {
Text("Hi!")
.navigationBarTitle("Title", displayMode: .inline)
}
}
struct DetailView: View {
var title: String = ""
var body: some View {
Text("Hi!")
.navigationBarTitle(title, displayMode: .inline)
}
}
【问题讨论】:
-
我认为:
navigationBarTitle()已被弃用并被.navigationTitle()取代 -
你使用哪个 Xcode 版本?
-
@Asperi 12.1 (12A7403)。
-
@Sweeper 1. 创建新的 SwiftUI 项目,2. 将最小部署目标降低到 13.0,3. 替换
ContentView和struct ContentView: View { var title: String = ""; var body: some View { Text("Hello, world!").navigationBarTitle(title, displayMode: .inline) } } -
嗯,如果我删除
title属性似乎可以工作。当我添加它时,错误又回来了。见imgur.com/a/rfRCGYn。我编辑了我的帖子
标签: ios swift xcode swiftui deprecated