Abra a primeira visualização com base na condição
Quero que meu aplicativo verifique no início condicionalmente se uma variável está correta ou não. Com base nisso, deve ir para uma tela de introdução (onde ele pode selecionar uma variável no meu caso, selecionar uma equipe) ou deve iniciar a visualização principal. Depois de pesquisar, encontrei este código e o editei.
Mas ainda parece haver problemas. Em primeiro lugar, não tenho dois identificadores. A introdução tem uma, mas não a visão principal. Minha visualização principal se chama WeatherViewController e a tela de introdução se chama FirstScreenViewController.
Eu também adicionei uma foto do meu Main.storyboard. Também pesquisei muito sobre UINavigationController condicional, mas só consigo entender com um vídeo e não encontrei um vídeo sobre isso.
Tentei usar o código daqui .

var id = hello ? "goToIntro" : "???"
self.window = UIWindow(frame: UIScreen.main.bounds)
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let WeatherViewController: UIViewController = mainStoryboard.FirstScreenViewController(withIdentifier: WVC has no identifier??) as UIViewController
self.window?.rootViewController = WeatherViewController
self.window?.makeKeyAndVisible()
if hello {
self.performSegue(withIdentifier: "goToIntro", sender: self)
} else {
/here nothing should happen. It should open the Main View
self.performSegue(withIdentifier: "???", sender: self)
}
Respostas
Simplesmente repita as etapas que você fez para criar a segue goToIntro
.
- Adicione um novo
UIViewController
(MainViewController
) em seu storyboard. - Adicione uma segue e dê a ela um identificador.
- Forneça o valor do identificador na condição else do código que você mostrou em sua postagem para executar a transição para o
UIViewController
que você acabou de criar.
O código final deve ser semelhante a este:
var id = hello ? "goToIntro" : "goToMain"
guard let windowScene = scene as? UIWindowScene else { return }
window = UIWindow(windowScene: windowScene)
let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
let weatherViewController = mainStoryboard.instantiateInitialViewController()
window?.rootViewController = weatherViewController
window?.makeKeyAndVisible()
weatherViewController.performSegue(withIdentifier: id, sender: self)
Você não precisa do if else
bloco, pois o id
já foi determinado usando o ?
operador ternário.