我要实现的功能。比如,来自 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) 例如:
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) 它发生在我导入本机 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)