Swift 5. Как представить или показать ViewController по нажатию кнопки? Без раскадровки (программно) - PullRequest
0 голосов
/ 16 февраля 2020

Как я могу show() или persent() V C при нажатии кнопки? Какой код я должен написать?

1 Ответ

0 голосов
/ 16 февраля 2020

Во-первых, используя раскадровки

Если вы работаете с раскадровкой. Вы должны подключить раскадровку вида кнопки.

@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

Это одинаково как для программно созданных, так и для раскадровочных контроллеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...