UIApplication不会立即从窗口移除窗口

时间:2016-06-03 03:35:49

标签: ios uiwindow uiapplication

我想在主窗口上方创建一个浮动窗口,所以代码就像打击一样。 我使用假的单例模式来管理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的第一个问题~~~ 忽略我可怜的英语〜

  

我知道假单身人士现在建议,但我对这种情况是个不错的选择。如果您有其他选择,请告诉我与我分享〜

0 个答案:

没有答案