0
votes

iOS 13: Impossible de naviguer avec conditionnellement à une variole de visionneuse différente de Appdelegate.swift

J'ai défini mon contrôleur d'affichage de connexion comme contrôleur initial de Storyboard. Cependant, je souhaite accéder au contrôleur d'affichage principal de mon application lorsqu'un utilisateur a une session active. Voici ce que j'ai:

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

    let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
    if  sessionToken != nil {
        let tabBarVC = storyboard.instantiateViewController(identifier: "TabBarVC")
        tabBarVC.modalPresentationStyle = .fullScreen
        self.window?.rootViewController?.present(tabBarVC, animated: true, completion: nil)
    }
    return true
}


1 commentaires

Pourquoi voulez-vous présenter tabbarvc au lieu de pousser le contrôleur de vue?


4 Réponses :


1
votes

in screedelegate.swift xxx

ci-dessous iOS 13 appdelegate.swift xxx


4 commentaires

Merci. Ça a marché. Cette ligne est redondante; Pas nécessaire: laissez le storyboard = utistoryboard (nom: "Main", Bundle: Bundle.main)


Génial, @itpragmatik s'il vous plaît uplifier également si des réponses vous aide.


En fait, cette solution est quelque peu incorrecte. Après avoir mis en œuvre ci-dessus - j'ai remarqué que tous mes champs de saisie sous la forme sont devenus "en lecture seule". Pas certain de pourquoi.


La réponse est correcte. Vous pouvez avoir un autre problème. Et la solution qui fonctionne pour vous est la même réponse. Vous ne changez que la condition rien d'autre.



0
votes

J'ai testé ce code.

class AppDelegate: UIResponder, UIApplicationDelegate
{
    var window : UIWindow?
    static var sharedDelegate = AppDelegate()

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        AppDelegate.sharedDelegate = self
        window?.rootViewController = initialViewController()
        return true
    }
    private func initialViewController() -> UIViewController {
        let sessionToken = "abcd"
        if sessionToken.isEmpty {
            return UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ViewController") as! ViewController
        } else {
            return UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "HomeVC") as! HomeVC
        }
    }
}


0 commentaires

0
votes

pour iOS 13 dans Scedelegate.swift Vous pouvez ajouter un code ci-dessous xxx

ci-dessous iOS 13 Ajouter ci-dessous Code dans Appdelegate xxx


0 commentaires

-1
votes

Voici la solution finale qui a fonctionné pour moi: xxx


0 commentaires