Во-первых, используя раскадровки
Если вы работаете с раскадровкой. Вы должны подключить раскадровку вида кнопки.
@IBAction fileprivate func handlePresentingView(_ sender: UIButton) {
let vc = SecondVC()
present(vc, animated: true, completion: nil)
}
Второе, программно
1: Если вы работаете программно в viewDidLoad
, добавьте следующая строка.
mybutton.addTarget(self, action: #selector(handlePresentingVC(_:)), for: .touchUpInside)
2: Ваш метод действия
@objc func handlePresentingVC(_ sender: UIButton) {
let vc = SecondVC()
present(vc, animated: true, completion: nil)
}
В моем примере я предполагаю, что у вас нет файл раскадровки для вашего SecondVC
контроллера представления.
Если SecondVC
подключен к контроллеру представления раскадровки, вам нужно будет изменить создание экземпляра вашего secondVC
объекта внутри метода действия вашей кнопки.
1: Выберите контроллер представления SecondV C в вашей раскадровке.
2: Добавьте идентификатор раскадровки к нему ,
3: Измените метод действия вашей кнопки следующим образом.
@objc func handlePresentingVC(_ sender: UIButton) {
let storyboard = UIStoryboard.init(name: "Main", bundle: nil)
let secondVc = storyboard.instantiateViewController(withIdentifier: "SecondVC") as! SecondVC
present(secondVc, animated: true, completion: nil)
}
В Swift 5 и iOS 13
Модальным стилем презентации по умолчанию является карта. Это показывает предыдущий контроллер вида сверху и позволяет пользователю смахнуть представленный контроллер представления.
Чтобы сохранить старый стиль, вам нужно изменить контроллер представления внутри метода действия вашей кнопки следующим образом:
secondVc.modalPresentationStyle = .fullScreen
Это одинаково как для программно созданных, так и для раскадровочных контроллеров.