gpt4 book ai didi

swift - 如何以编程方式编写 func..(对于续集 : UIStoryboardSeque, 发件人 : Any?)

转载 作者:可可西里 更新时间:2023-11-01 01:56:06 26 4
gpt4 key购买 nike

我在使用 Storyboard时有这些代码:

 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
}
}

如果我不使用 Storyboard 并以编程方式编写这些代码以便将信息从当前 Controller 传递到 ProfilePhotoViewController,我该如何编写这些代码?

编辑:经过研究,我了解到以编程方式执行此操作是通过委托(delegate)进行的。但是,我不知道如何完成代码:

需要从 SignUpController 传递用户名、电子邮件和密码 ---> profilePhotoViewController

在注册 Controller 中:

协议(protocol) SignUpControllerDelegate { func handleSignUp(//我应该在这里写什么?)

var delegate: SignUpControllerDelegate?

@objc func handleSignUp() {

//...其他代码..//

代表?.handleSignUp(//??)

在 ProfileViewController 中:

我应该写什么来接收来自 SignUpController 的用户名、电子邮件和密码信息?

最佳答案

我们可以创建带有/不带有 NIB 文件的 View Controller 。

对于 NIB,您可以使用 init(nibName: String?, bundle: Bundle?) 方法。在这种情况下,view 将使用 Interface Builder 定义。

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

您也可以在没有 NIB 文件的情况下定义自定义的 UIViewController 子类并实现 loadView() 方法。

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

之后,我们需要将 View 添加到 View 层次结构中。

self.view.addSubview(viewController.view);
// or
self.present(viewController, animated: false, completion: nil)
// or if we have UINavigationController
self.navigationController?.pushViewController(viewController, animated: false)

关于swift - 如何以编程方式编写 func..(对于续集 : UIStoryboardSeque, 发件人 : Any?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53440820/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com