【发布时间】:2021-05-10 08:44:08
【问题描述】:
我有一个静态视图,用于在 UI 中显示为加载指示器。
static UIView *loadingView;
在我的班级Loading.m 中,当show() 被调用时,我将loadingView 添加到我的容器中
+ (void)show {
if (loadingView == nil) {
UIWindow *containerView = UIApplication.sharedApplication.keyWindow;
loadingView = [UIView alloc] init];
[containerView addSubview:loadingView];
}
}
当dismiss() 被调用时,我将其从超级视图中删除:
+ (void)dismiss {
if (loadingView != nil) {
[loadingView removeFromSuperview];
loadingView = nil;
}
}
我发现loadingView在添加到containerView之后总是为零,所以我会继续在我的containerView中添加更多loadingView,并且在调用dismiss()时它不会被删除。当我打印 UIApplication.sharedApplication.keyWindow 时,它显示 UIView 已添加到堆栈中。在show() 完成后,loadingView 似乎失去了对containerView 的引用。
什么给了?
【问题讨论】:
标签: ios objective-c