首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Swift 界面間傳值:代理模式實現步驟詳解

     編輯:程式設計綜合問答

場景

登錄成功後,需將賬號傳遞給跳轉的新頁面。使用代理模式實現反向傳值。

實現步驟

  1. 定義協議:
    protocol LoginDelegate: AnyObject { func didLogin(account: String) }
  2. 在源頁面(登錄頁)聲明代理屬性:
    weak var delegate: LoginDelegate?
  3. 登錄成功時調用代理方法:
    delegate?.didLogin(account: usernameTextField.text ?? "")
  4. 目標頁面遵守協議並實現方法:
    class HomeViewController: UIViewController, LoginDelegate { func didLogin(account: String) { self.accountLabel.text = account } }
  5. 跳轉時設置代理:
    let loginVC = LoginViewController()
    loginVC.delegate = self
    present(loginVC, animated: true)

注意點

  • 代理屬性必須標記 weak 避免循環引用。
  • 同理可用於閉包回調、NotificationCenter、單例共享模型等方式,視業務複雜度選擇。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved