我想在主窗口上方创建一个浮动窗口,所以代码就像打击一样。 我使用假的单例模式来管理UIWindow。因为我不希望其他对象保留窗口。代码:
@class testWindow;
static testWindow *singletonSelf;
static dispatch_once_t once;
@implementation testWindow
+ (testWindow *)sharedWindow {
dispatch_once(&(once), ^{
singletonSelf = [[testWindow alloc] initWithFrame:CGRectMake(200,200,200,200)];
});
return singletonSelf;
}
+ (void)dismiss {
singletonSelf = nil;
once = 0;
}
...
- (void)closeButtonClicked {
self.hidden = YES;
[testWindow dismiss];
}
窗口上有一个按钮。方法' -closeButtonClicked'单击按钮时将调用。当 -closeButtonClicked 被调用时,我将Window隐藏属性设置为YES并将 singletonSelf ,一次设置为nil,以便将来创建新窗口
但是当我这样做时,窗口没有立即释放。 [UIApplication sharedApplication] 的windows属性甚至包含我想要发布的窗口。
直到我点击屏幕(任何位置),[UIApplication sharedApplication]的windows属性删除窗口,而不是窗口将被释放。
我想在调用+ dismiss方法时立即从Windows中删除窗口。
THX寻求帮助。 这是关于StackOverFlow的第一个问题~~~ 忽略我可怜的英语〜
我知道假单身人士现在建议,但我对这种情况是个不错的选择。如果您有其他选择,请告诉我与我分享〜