我正在以编程方式编写应用程序(没有故事板)并且有登录屏幕。登录屏幕具有用于登录用户详细信息的输入框以及登录和注册按钮。
按下按钮后,如何以编程方式与按钮交互以有效地执行到新视图的切换?
我知道对于导航按钮,我会使用
navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Logout", style: .plain, target: self, action: #selector(handleLogout))
但是视图控制器中的任何按钮是否有等价物?我敢肯定有,它可能是一个简单的问题,但任何帮助将不胜感激。
我的按钮代码是
let registerButton: UIButton = {
let button = UIButton(type: .system)
button.backgroundColor = UIColor.black
button.setTitle("Register", for: .normal)
button.layer.cornerRadius = 5
button.translatesAutoresizingMaskIntoConstraints = false
return button
}()
并作为子视图添加到登录页面
view.addSubview(registerButton)
谢谢。
segue
是 Interface Builder 行话。在 iOS 中,您只能以三种方式显示视图控制器:push
、present
、show
。以编程方式,您不会将其称为 segue。首先,给你的按钮添加一个目标:
registerButton.addTarget(self, action: #selector(registerButtonAction), for: .touchUpInside)
创建操作方法:
@objc func registerButtonAction() {
...
}
如果你想要push
一个视图控制器(使用导航控制器),从 action 方法内部推送到它:
@objc func registerButtonAction() {
let destination = SomeViewController()
navigationController?.pushViewController(destination, animated: true)
}
如果你想展示它(模态):
@objc func registerButtonAction() {
let destination = SomeViewController()
destination.transitioningDelegate = SomePresentationAnimationVendor() // for custom presentations
destination.modalPresentationStyle = .custom // for custom
present(destination, animated: true, completion: nil)
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句