如何检查加载到 HomeViewController 中的 popularProduct.xib 文件
How can I check popularProduct.xib file loaded into HomeViewController
在我的 HomeViewController 中有四个部分:
- 横幅
- 热门产品
- 新产品
- 旧产品
所有都是 .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
}
}
此外,您可以检查以便更好地理解代表。
在我的 HomeViewController 中有四个部分:
- 横幅
- 热门产品
- 新产品
- 旧产品
所有都是 .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
}
}
此外,您可以检查