【发布时间】:2019-04-15 04:16:22
【问题描述】:
我想通过我的所有视图控制器制作错误处理页面,因此当错误获取数据错误时,它不仅显示对话框,而且显示包含错误消息和刷新按钮的 XIB 文件。像这样:
这是 XIB 类代码:
import UIKit
class ErrorMessage: UIView {
@IBOutlet weak var imageViewError: UIImageView!
@IBOutlet weak var labelError: UILabel!
@IBOutlet weak var buttonTryAgain: UIButton!
static var message: String?
override func awakeFromNib() {
labelError.text = ErrorMessage.message
}
@IBAction func didTapTryAgain(_ sender: Any) {
Dialog.showProgressDialog(info: "")
}
}
这是我处理所有问题的基本控制器代码。
import Foundation
class BaseViewController: UIViewController {
var uiView = UIView();
override func viewDidLoad() {
}
func getErrorMessage(message:String) {
super.viewDidLoad()
ErrorMessage.message = message
guard let viewErrorMessage = Bundle.main.loadNibNamed("ErrorMessage", owner: self, options: nil)?.first as? ErrorMessage else { return}
self.view.addSubview(viewErrorMessage)
}
}
这是我在另一个类中调用它的方法,我扩展了BaseViewController,因此它可以全局显示错误问题,而无需我再次重新声明该类:
func onFailedDeleteCart(errorMessage: String) {
getErrorMessage(message: errorMessage)
}
现在我可以传递错误消息。
问题是,我希望刷新按钮在单击时刷新当前的视图控制器。也许当我点击它时调用当前视图控制器的 viewDidLoad 将是一个很好的逻辑,但我不知道如何在 XIB 类中实现它。 任何人都可以解决这个问题?谢谢!
【问题讨论】:
-
您可以使用
completion handler或delegate来实现。