我的看法是@ObservedObject:
struct HomeView: View {
@ObservedObject var station = Station()
var body: some View {
Text(self.station.status)
}
Run Code Online (Sandbox Code Playgroud)
它根据Stringfrom更新文本Station.status:
class Station: ObservableObject {
@Published var status: String = UserDefaults.standard.string(forKey: "status") ?? "OFFLINE" {
didSet {
UserDefaults.standard.set(status, forKey: "status")
}
}
Run Code Online (Sandbox Code Playgroud)
status但是,我需要更改my 中的值AppDelegate,因为这是我接收Firebase Cloud Messages的地方:
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any],
fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
// If you are receiving a notification message while your app …Run Code Online (Sandbox Code Playgroud) 有没有办法允许视图超出其父视图的边界。这是我想要实现的目标的直观表示:
我的设置显示在屏幕 (1) 上。红色边框表示主视图(黑色边框)内的另一个视图。我想要做的是,当按下橙色按钮时,在全屏高度上显示灰色视图(也带有黑色边框),即使灰色视图也位于红色视图内 - 效果如屏幕(2)所示。
基本上我需要使视图超出其父边界。
不幸的是,我只能实现屏幕(3)的效果。灰色视图包含在 GeometryReader 中,我将其高度设置为等于它可以获得的最大高度。
请不要建议我将灰色视图从红色视图中移出,使其位于根级别,然后使用绑定来显示/隐藏侧边栏。这不是我在我的项目中可以做的事情。