首先我有NavigationView,并且不往回滑动,为什么在UIKit NavigationController中,为什么? 其次,如何为我的情况正确创建导航流: 我有AuthView(),SelectedLanguageView()和OnboardingView()。 首先,开始用户显示SelectedLanguageView(),然后显示OnboardingView(),最后显示AuthView() 用户不能使用OnboardingView()返回SelectedLanguageView()并使用AuthView()返回AuthView() 没有NavigationView,只是NavigationLink无法工作,为什么? 如果这不是第一次启动,并且没有用户授权,则显示AuthView(),否则,如果用户授权,则显示MainView(), MainView()包含4个项目的标签栏,每个项目都有NavigationView
@State private var navBarHidden = true
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
let languagSettings = UserLanguageSettings()
UserDefaults.standard.set(false, forKey: "isNotFirstLaunchApp")
if let windowScene = scene as? UIWindowScene {
let window = UIWindow(windowScene: windowScene)
if UserDefaults.standard.bool(forKey: "isNotFirstLaunchApp") == false {
window.rootViewController = UIHostingController(rootView: OnboardingView(navBarHidden: $navBarHidden).environmentObject(languagSettings))
} else {
window.rootViewController = UIHostingController(rootView: AuthorizationView(navBarHidden: $navBarHidden.not, isAddNavView: true).environmentObject(languagSettings))
}
self.window = window
window.makeKeyAndVisible()
}
}
如果未授权用户,则条件尚未添加
var isAddNavView: Bool = false
var body: some View {
if isAddNavBar {
return NavigationView {
ZStack {
VStack {
Text("")
}
}
}
} else {
return ZStack {
VStack {
Text("")
}
}
}
}
我有错误,如果返回NavigationView,如果删除NavigationView并返回ZStack,则可以。我认为有更好的解决方案。 想法?
NavigationLink(destination: SignInView(), isActive: $isShowingSignInView) {
EmptyView()
}
Button(action: {
self.isShowingSignInView.toggle()
}) {
Text("isShowingSignInView")
}
我这样使用的项目中的所有导航链接
下一步-我尝试了以下操作: 在所有项目中,我删除所有NavigationView并创建模式显示屏幕(.sheet) 在AuthorizationView()中,我有变量@State 例如,在AuthorizationView()上我有
@State var isShowRegistration: Bool = false
并点击按钮注册以显示流程注册包括4个屏幕,显示为.sheet
RegistrationView(registrationView: $isShowRegistration)
//screens below include @Binding var registrationView: Bool
VerificationView(registrationView: $registrationView)
SetupPasswordView(registrationView: $registrationView)
EndRegistrationViewAndAuthorization(registrationView: $registrationView)
在EndRegistrationViewAndAuthorization上,我有一个按钮,理想情况下,我需要关闭所有先前的屏幕并调用func Auth(),这将打开我带有标签栏的应用程序主屏幕,其中的每个项目都包含NavigationView。现在我的按钮动作{self.registrationView.toogle()}返回我RegistrationView(),但应该返回到AuthorizationView()
答案 0 :(得分:0)
我有错误,如果返回NavigationView,如果删除NavigationView并返回ZStack,则可以。我认为有更好的解决方案。想法?
对于SwiftUI 1.0,以下方法应该起作用
int main()
{
string a={'a','b','c'};
string b={'c','d','e'};
int res = makeAnagram(a, b);
cout << res << "\n";
return 0;
}