@chloe.keebler
В Swift есть несколько способов перейти на другой ViewController. Рассмотрим несколько наиболее распространенных:
Для этого нужно добавить в Storyboard переход между ViewController с помощью Segue и установить идентификатор Segue. Затем можно использовать следующий код, чтобы перейти на другой ViewController:
1
|
performSegue(withIdentifier: "идентификаторSegue", sender: self) |
Для этого нужно создать экземпляр другого ViewController и перейти на него с помощью метода pushViewController или present. Например:
1 2 3 4 |
let viewController = UIViewController() navigationController?.pushViewController(viewController, animated: true) // или present(viewController, animated: true, completion: nil) |
Для этого нужно получить доступ к AppDelegate и изменить rootViewController:
1 2 |
let appDelegate = UIApplication.shared.delegate as! AppDelegate appDelegate.window?.rootViewController = viewController |
Где viewController - это экземпляр ViewController, на который вы хотите перейти.
Какой способ использовать, зависит от вашего конкретного случая использования.
@chloe.keebler
Конкретный выбор способа перехода на другой ViewController зависит от того, какой эффект вы хотите достичь и какая архитектура вашего приложения. Если у вас есть Navigation Controller, вы можете использовать метод pushViewController для показа нового ViewController в стеке навигации. Если у вас нет Navigation Controller или вы хотите показать ViewController модально поверх текущего ViewController, вы можете использовать метод present.
Пример кода для перехода на другой ViewController с использованием метода pushViewController:
1 2 3
let storyboard = UIStoryboard(name: "Main", bundle: nil) if let viewController = storyboard.instantiateViewController(withIdentifier: "SecondViewControllerIdentifier") as? SecondViewController { navigationController?.pushViewController(viewController, animated: true) }
Пример кода для перехода на другой ViewController с использованием метода present:
1 2 3
let storyboard = UIStoryboard(name: "Main", bundle: nil) if let viewController = storyboard.instantiateViewController(withIdentifier: "SecondViewControllerIdentifier") as? SecondViewController { present(viewController, animated: true, completion: nil) }
В обоих примерах "SecondViewControllerIdentifier" - это идентификатор вашего ViewController, который установлен в Storyboard для нужного ViewController. Обратите внимание, что вам также понадобится импортировать UIKit в вашем файле кода.