小编Vip*_*mar的帖子

SwiftUI - 如何关闭工作表视图,同时关闭该视图

我要实现的功能。比如,来自 Apple 的“Look up”视图。

我的目标是当表单视图通过导航推送另一个视图时,用户可以点击导航项按钮来关闭表单视图。就像,这个下面的gif。

在此处输入图片说明

我尝试实现这个功能。

我发现一个问题是当用户点击“完成”按钮时。该应用程序不会关闭工作表视图。它只会将视图弹出到父视图。就像,这个下面的gif。

在此处输入图片说明

这是我的代码。

import SwiftUI

struct ContentView: View {
    @State var isShowSheet = false
    var body: some View {
        Button(action: {
            self.isShowSheet.toggle()
        }) {
            Text("Tap to show the sheet")
        }.sheet(isPresented: $isShowSheet) {
            NavView()
        }
    }
}

struct NavView: View {
    var body: some View {
        NavigationView {
            NavigationLink(destination: NavSubView()) {
                Text("Enter Sub View")
            }
        } .navigationViewStyle(StackNavigationViewStyle())
    }
}

struct NavSubView: View {
    @Environment(\.presentationMode) var presentationMode

    var body: some View {
        Text("Hello")
        .navigationBarItems(trailing:
            Button(action: {
                self.presentationMode.wrappedValue.dismiss() …
Run Code Online (Sandbox Code Playgroud)

navigation dismiss ios swift swiftui

10
推荐指数
2
解决办法
8017
查看次数

如何快速获得两个日期之间的 30 分钟时间段数组

例如:

startDate:- 20-08-2018 10:00 AM

endDate:- 20-08-2018 02:30 PM
Run Code Online (Sandbox Code Playgroud)

输出:[“10:00 AM”、“10:30 AM”、“11:00 AM”、“11:30 AM”、“12:00PM”、“12:30 PM”、“01:00 PM” , "01:30 PM", "02:00 PM", "02:30 PM"]

var fromTime:Date = getFromTime
fromTime = fromTime.addingTimeInterval(-1800)

guard let toTime:Date  = timeFormat.date(from:endTime) else {
    return nil
}

var dateByAddingThirtyMinute : Date!
let timeinterval : TimeInterval = toTime.timeIntervalSince(fromTime)
let numberOfIntervals : Double = timeinterval / 3600;

var timeArrayAM = [String]()
var timeArrayPM = [String]()

for _ in stride(from: 0, to: Int(numberOfIntervals * 2), by: 1) {

    dateByAddingThirtyMinute = …
Run Code Online (Sandbox Code Playgroud)

time date ios swift

2
推荐指数
1
解决办法
3183
查看次数

如何修复在 Android Studio 4 中启动时崩溃的问题?

它发生在我导入本机 opencv 项目https://github.com/leadrien/opencv_native_androidstudio/blob/master/app/src/main/cpp/native-lib.cpp后安装了一些与 intellij 相关的插件之后。在启动时它会引发此错误。

Internal error. Please refer to https://code.google.com/p/android/issues

java.lang.ExceptionInInitializerError
    at com.a.a.b.a.p.a(p.java:182)
    at com.a.a.b.b.ar.a(ar.java:348)
    at com.a.a.b.b.ar.a(ar.java:172)
    at com.a.a.b.b.ar.a(ar.java:71)
    at com.intellij.idea.MainImpl.start(MainImpl.java:19)
    at com.intellij.idea.StartupUtil.lambda$startApp$5(StartupUtil.java:248)
    at com.intellij.util.ui.EdtInvocationManager.executeWithCustomManager(EdtInvocationManager.java:73)
    at com.intellij.idea.StartupUtil.startApp(StartupUtil.java:243)
    at com.intellij.idea.StartupUtil.prepareApp(StartupUtil.java:214)
    at com.intellij.ide.plugins.MainRunner.lambda$start$0(MainRunner.java:45)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
    at com.intellij.ui.scale.JBUIScale.lambda$static$0(JBUIScale.java:72)
    at com.intellij.openapi.util.AtomicNotNullLazyValue$1.compute(AtomicNotNullLazyValue.java:59)
    at com.intellij.openapi.util.AtomicNotNullLazyValue.getValue(AtomicNotNullLazyValue.java:37)
    at com.intellij.ui.scale.JBUIScale.lambda$static$1(JBUIScale.java:152)
    at com.intellij.util.LazyInitializer$MutableNotNullValue.initialize(LazyInitializer.java:113)
    at com.intellij.util.LazyInitializer$NullableValue.get(LazyInitializer.java:41)
    at com.intellij.util.LazyInitializer$MutableNotNullValue.get(LazyInitializer.java:102)
    at com.intellij.ui.scale.JBUIScale.lambda$static$2(JBUIScale.java:170)
    at com.intellij.util.LazyInitializer$MutableNotNullValue.initialize(LazyInitializer.java:113)
    at com.intellij.util.LazyInitializer$NullableValue.get(LazyInitializer.java:41)
    at com.intellij.util.LazyInitializer$MutableNotNullValue.get(LazyInitializer.java:102)
    at com.intellij.ui.scale.JBUIScale.scale(JBUIScale.java:294)
    at com.intellij.util.ui.JBInsets.create(JBInsets.java:41)
    at com.intellij.util.ui.UIUtil.<clinit>(UIUtil.java:457)
    ... 11 more

-----
JRE 1.8.0_242-release-1644-b3-6222593 amd64 by JetBrains s.r.o
/opt/android-studio/jre/jre
Run Code Online (Sandbox Code Playgroud)

java android

2
推荐指数
1
解决办法
762
查看次数

标签 统计

ios ×2

swift ×2

android ×1

date ×1

dismiss ×1

java ×1

navigation ×1

swiftui ×1

time ×1