如何检查加载到 HomeViewController 中的 popularProduct.xib 文件

How can I check popularProduct.xib file loaded into HomeViewController

在我的 HomeViewController 中有四个部分:

  1. 横幅
  2. 热门产品
  3. 新产品
  4. 旧产品

所有都是 .xib 个文件,它们工作正常。

现在我想在 HomeViewController

中添加 ActivityIndicator

所以现在我想在 HomeViewController 上显示 ActivityIndicator,直到所有 .xib 的文件在 HomeViewController 中未完全加载为 .xib' s ActivityIndicator 应该隐藏。

现在,我的问题是如何确认 .xib 是否已加载到 HomeViewController

作为一个非常简单的直接解决方案,您可以遵循 委托 方法。因此,当 "Popular Product" View 完成所需的过程时,您应该触发一个将由视图控制器处理的委托方法。

示例:

请考虑在 PopularProduct class 中您正在实现一个名为 doSomething() 的方法,该方法需要被调用并完成其工作以从视图中隐藏 activity 指示器控制器,它应该将 Data 实例发送到视图控制器。你可以这样做:

protocol PopularProductDelegate: class {
    func popularProduct(popularProduct: PopularProduct, doSomethingDidPerformWith data: Data)
}

class PopularProduct: UIView {
    // ...
    weak var delegate: PopularProductDelegate?

    func doSomething() {
        // consider that there is much work to be done here
        // which generates a data instance:
        let data = Data(base64Encoded: "...")!

        // therefore:
        delegate?.popularProduct(popularProduct: self, doSomethingDidPerformWith: data)
    }

    // ...
}

因此,在ViewController中:

class ViewController: UIViewController {
    // ...
    var popularProduct: PopularProduct!

    override func viewDidLoad() {
        super.viewDidLoad()

        // show indicator
        popularProduct.doSomething()
    }
    // ...
}

extension ViewController: PopularProductDelegate {
    func popularProduct(popularProduct: PopularProduct, doSomethingDidPerformWith data: Data) {
        print(data)
        // hide indicator
    }
}

此外,您可以检查以便更好地理解代表。