Как написать func .. (для продолжений: UIStoryboardSeque, sender: Any?) Программно - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть эти коды при использовании раскадровки:

 override func prepare (for segue: UIStoryboardSegue, sender: Any?) {

    if segue.identifier == ProfilePhotoViewController.identifier {
      guard let username = usernameTextField.text, let email = emailTextField.text, let password = passwordTextField.text else { return }

      let profilePhotoVC = segue.destination as! ProfilePhotoViewController
      profilePhotoVC.email = email
      profilePhotoVC.username = username
      profilePhotoVC.password = password
    }
  }

Как мне написать этот код, если я не использую раскадровку и пишу их программно, чтобы передать информацию из текущего контроллера в ProfilePhotoViewController?

РЕДАКТИРОВАТЬ: После проведения исследования я понимаю, что делать это программно через делегата.Однако я не знаю, как мне выполнить код:

Необходимо передать имя пользователя, адрес электронной почты и пароль из SignUpController ---> profilePhotoViewController

в SignUpController:

протокол SignUpControllerDelegate {func handleSignUp (// что мне здесь написать?)}

var делегат: SignUpControllerDelegate?

@ objc func handleSignUp () {

// ...other code ..//

делегат? .handleSignUp (// ??)}

В ProfileViewController:

что я должен написать, чтобы получить имя пользователя, адрес электронной почты иинформация о пароле от SignUpController?

Ответы [ 2 ]

0 голосов
/ 23 ноября 2018

Мы можем создать контроллер представления с / без NIB-файла.

С NIB вы используете init(nibName: String?, bundle: Bundle?) метод.В этом случае view будет определено с помощью Interface Builder.

// bundle = nil denote the main bundle
let viewController = MyViewController(nibName:"MyViewController", bundle: nil)

Также вы можете определить собственный подкласс UIViewController без файла NIB и реализовать метод loadView().

override func loadView() {
    self.view = UIView(...)
}

После этого нам нужно добавить представление в иерархию представлений.

self.view.addSubview(viewController.view);
// or
self.present(viewController, animated: false, completion: nil)
// or if we have UINavigationController
self.navigationController?.pushViewController(viewController, animated: false)
0 голосов
/ 23 ноября 2018

Попробуйте вот так

guard let username = usernameTextField.text, let email = emailTextField.text, let password = passwordTextField.text else { return }

let profileVC = ProfilePhotoViewController()
profileVC.email = email
...