• IOS开发之页面跳转


    页面跳转需要添加navigationController,方法是在storyBoard视图中点击一个启动视图,点击右下角的 Embed in 按钮即可添加一个navigationController

     接下来在视图界面中的按钮 按住Ctrl 拖动指向另外一个界面,在弹窗中选择 show 既可以跳转对应的目标页面。

    如果一个页面有多个按钮需要跳转页面,需要在类中判断是否可以跳转,重写方法shouldPerformSegue,该方法控制是否可以跳转页面:

    还有一个方法是prepare,方法,是等待shouldPerformSegue返回true的时候紧接着调用,下面的例子演示冲登录页面跳转到登录成功界面(跳转需要用户名和密码不为nil)和注册页面(跳转不需要条件)

    loginVC:

    1. import UIKit
    2. /**
    3. 登录界面
    4. */
    5. class LoginVC: UIViewController {
    6. @IBOutlet weak var errorTip: UILabel!
    7. @IBOutlet weak var password: UITextField!
    8. @IBOutlet weak var username: UITextField!
    9. override func viewDidLoad() {
    10. super.viewDidLoad()
    11. // Do any additional setup after loading the view.
    12. }
    13. override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    14. if segue.identifier == "loginSuccess" {
    15. let target = segue.destination as? SuccessVC;
    16. target?.text = "登录成功"
    17. }
    18. }
    19. // 是否决定进行页面跳转
    20. override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {
    21. if(identifier == "register") {
    22. return true;
    23. } else {
    24. // let usernameIsOk = username.text ?? "";
    25. //username.text?.isEmpty
    26. if username.hasText && password.hasText {
    27. errorTip.text = "";
    28. return true;
    29. }
    30. if !username.hasText {
    31. errorTip.text = "用户名不能为空!"
    32. return false;
    33. }
    34. if !password.hasText {
    35. errorTip.text = "请输入密码!"
    36. return false;
    37. }
    38. return false;
    39. }
    40. }
    41. }

    successVC:

    1. import UIKit
    2. class SuccessVC: UIViewController {
    3. var text: String = ""
    4. @IBOutlet weak var successLabel: UILabel!
    5. @IBOutlet weak var backButton: UIButton!
    6. override func viewDidLoad() {
    7. super.viewDidLoad()
    8. successLabel.text = text;
    9. // Do any additional setup after loading the view.
    10. }
    11. @IBAction func backEvent(_ sender: UIButton) {
    12. // self.navigationController?.popViewController(animated: true)
    13. // 退出页面调用dismiss方法退出当前视图
    14. self.dismiss(animated: true) {
    15. print("退出成功");
    16. }
    17. }
    18. /*
    19. // MARK: - Navigation
    20. // In a storyboard-based application, you will often want to do a little preparation before navigation
    21. override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    22. // Get the new view controller using segue.destination.
    23. // Pass the selected object to the new view controller.
    24. }
    25. */
    26. }

  • 相关阅读:
    极限多标签学习之SwiftXML
    synchronized锁升级过程
    DAY02 c++对c的扩展
    Ubuntu20.04安装c++版本的OpenCV
    Diango项目-简易个人博客项目
    分析linux启动内核源码
    PCL 源码分析:ICP点云精配准
    PaddleOCRv3之三:rec识别部分训练
    含文档+PPT+源码等]精品基于Uniapp+SSM实现的android在线点单系统APP[包运行成功]计算机毕业设计Android项目源码
    史上最全SpringCloud微服务笔记,掌握已超过80%Java面试者
  • 原文地址:https://blog.csdn.net/lck8989/article/details/125459394