相关疑难解决方法(0)

如何从 iOS 应用程序中删除场景委托?

我在 Xcode 11.1 中创建了 iOS 项目。我需要从应用程序中删除场景委托。

ios swift

32
推荐指数
5
解决办法
2万
查看次数

Swift ios设置了一个新的根视图控制器

我想知道是否有可能设置一个新的根VC?

我的应用程序使用uinavigation控制器获取init,该控制器具有作为根VC的表视图.

然后从表格视图我运行另一个segue到一个登录窗口(以模态呈现)如果你然后登录你最终在红色的 VC /帐户页面.我现在要做的是将红色VC设置为应用程序的新根VC,并删除所有底层VC.这样我就可以显示菜单按钮/图标而不是"后退"按钮

我找到了这个,但我不明白如何使用它:

let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())
        let yourViewController: ViewController = storyboard.instantiateViewControllerWithIdentifier("respectiveIdentifier") as! ViewController

        let navigationController = self.window?.rootViewController as! UINavigationController
        navigationController.setViewControllers([yourViewController], animated: true)
Run Code Online (Sandbox Code Playgroud)

但我无法让它发挥作用.因此可以使图中的红色vc充当新的根VC.

在此输入图像描述

xcode storyboard ios swift

18
推荐指数
7
解决办法
6万
查看次数

设置 rootViewController iOS 13

升级 Xcode 后,我的应用程序的一个关键部分停止工作。

当我的应用程序启动时,我运行一个函数来检查布尔标志并设置正确的 rootViewController。

但是我用来设置它的代码现在已经停止工作了

class func setLoginAsInitialViewContoller(window:UIWindow) {
    print("SET LOGIN") 
    let storyboard = UIStoryboard(name: "Login", bundle: nil)
    let controller = storyboard.instantiateViewController(withIdentifier: "LoginViewController")
    controller.modalPresentationStyle = .overFullScreen
    window.rootViewController = controller
    window.makeKeyAndVisible()
}
Run Code Online (Sandbox Code Playgroud)

特别是当应用程序获得倒数第二行时,window.rootViewController = controller它会因libc++abi.dylib: terminating with uncaught exception of type NSException错误而崩溃。

上面的函数在一个被Utilities.swift调用的类中,我正在从我的内部调用该函数AppDelegate.swift,如下所示:

class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?
    var storyboard: UIStoryboard? = nil

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

        UIApplication.shared.isIdleTimerDisabled = true
        Utilities.decideInitialViewController(window: self.window!) …
Run Code Online (Sandbox Code Playgroud)

uiwindow ios rootview swift ios13

9
推荐指数
3
解决办法
1万
查看次数

在 SwiftUI 中打开 Google 登录屏幕

我正在使用 Google 登录屏幕和 swiftUI,但我一直在我的日志中收到一堆我不太理解的消息 - 现在我可以使用这些日志,但我遇到的问题是我可以不要多次调用同一个函数...

import SwiftUI
import GoogleSignIn

class GoogleStuff: UIViewController, GIDSignInDelegate, ObservableObject {
    
    var googleSignIn = GIDSignIn.sharedInstance()
    var googleId = ""
    var googleIdToken = ""
    var googleFirstName = ""
    var googleLastName = ""
    var googleEmail = ""
    var googleProfileURL = ""
    
    func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) {
        
        guard user != nil else {
            print("Uh oh. The user cancelled the Google login.")
            return
        }
        
        print("TOKEN => \(user.authentication.idToken!)")

        
    }
    
    func sign(_ signIn: GIDSignIn!, didDisconnectWith …
Run Code Online (Sandbox Code Playgroud)

google-authentication ios swift google-signin swiftui

9
推荐指数
2
解决办法
1621
查看次数