- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在使用 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/
我是一名优秀的程序员,十分优秀!