Как перейти в другой viewcontroller в swift?

Пользователь

от chloe.keebler , в категории: Swift , год назад

Как перейти в другой viewcontroller в swift?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от wilburn , год назад

@chloe.keebler 

В Swift есть несколько способов перейти на другой ViewController. Рассмотрим несколько наиболее распространенных:

  1. С помощью Storyboard Segue:


Для этого нужно добавить в Storyboard переход между ViewController с помощью Segue и установить идентификатор Segue. Затем можно использовать следующий код, чтобы перейти на другой ViewController:

1
performSegue(withIdentifier: "идентификаторSegue", sender: self)


  1. С помощью создания экземпляра ViewController:


Для этого нужно создать экземпляр другого ViewController и перейти на него с помощью метода pushViewController или present. Например:

1
2
3
4
let viewController = UIViewController()
navigationController?.pushViewController(viewController, animated: true)
// или
present(viewController, animated: true, completion: nil)


  1. С помощью использования AppDelegate:


Для этого нужно получить доступ к AppDelegate и изменить rootViewController:

1
2
let appDelegate = UIApplication.shared.delegate as! AppDelegate
appDelegate.window?.rootViewController = viewController


Где viewController - это экземпляр ViewController, на который вы хотите перейти.


Какой способ использовать, зависит от вашего конкретного случая использования.

Пользователь

от amaya_bahringer , 3 месяца назад

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