相关疑难解决方法(0)

获得最顶级的UIViewController

如果UIViewController没有访问权限,我似乎无法获得最高分UINavigationController.这是我到目前为止:

UIApplication.sharedApplication().keyWindow?.rootViewController?.presentViewController(vc, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

但是,它似乎没有做任何事情.在keyWindowrootViewController似乎是非零值太多,所以可选的链接不应该是一个问题.

注意: 做这样的事情是个坏主意.它打破了MVC模式.

uiviewcontroller swift

174
推荐指数
14
解决办法
12万
查看次数

如何解决:iOS 13.0中不推荐使用“ keyWindow”

我正在将Core Data和Cloud Kit一起使用,因此必须在应用程序启动期间检查iCloud用户状态。如果出现问题,我想向用户发出一个对话框UIApplication.shared.keyWindow?.rootViewController?.present(...),直到现在我还是这样做。

在Xcode 11 beta 4中,现在有一条新的弃用消息,告诉我:

iOS 13.0中已弃用“ keyWindow”:不应将其用于支持多个场景的应用程序,因为它会返回所有已连接场景的关键窗口

我该如何显示对话框?

uikit uiwindow uiapplication uiscene

43
推荐指数
14
解决办法
8426
查看次数

在SwiftUI Modal中禁用拖动以关闭

我已经介绍了一个模式视图,但是我希望用户先经历一些步骤才能将其关闭。当前可以拖动视图以将其关闭。

有没有办法阻止这种可能性?

我已经看过WWDC会议的视频,他们提到了它,但是我似乎没能确切地知道我需要的代码。

struct OnboardingView2 : View {

    @Binding
    var dismissFlag: Bool

    var body: some View {

        VStack {
            Text("Onboarding here! ")
            Button(action: {
                self.dismissFlag.toggle()
            }) {
                Text("Dismiss")
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我目前有一些文本和一个按钮,以后会使用它来关闭视图。

swiftui

10
推荐指数
3
解决办法
949
查看次数

是否可以在SwiftUI中使模式成为不可消除的?

我正在创建一个应用程序,其中登录/注册部分位于模式内部,如果用户未登录,则会显示该模式。

问题是,用户可以通过向下滑动模式来消除该模式...

有可能防止这种情况吗?

var body: some View {
    TabView(selection: $selection) {
        App()
    }.sheet(isPresented: self.$showSheet) { // This needs to be non-dismissible
        LoginRegister()
    }
}
Run Code Online (Sandbox Code Playgroud)

第二个例子:

我正在使用一种模式来询问信息。除非通过使用“保存”按钮关闭模态,否则用户不能退出该过程。用户必须在按钮起作用之前输入信息。不幸的是,该模式可以通过向下滑动来消除。

有可能防止这种情况吗?

swiftui

5
推荐指数
1
解决办法
693
查看次数

通过在swiftui中向下滑动来限制工作表解除

我有一个按钮,当我点击它时,一个新的视图将显示为一个工作表。在 SwiftUI 中,默认情况下向下滑动手势将关闭工作表视图。我想限制它。

我会有一个解雇按钮。在我按下那个按钮表之前,不应被解雇。

ios swift swiftui

5
推荐指数
3
解决办法
2794
查看次数