@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 в вашем файле кода.