removeFromSuperview不会删除视图

时间:2014-05-05 01:30:27

标签: ios7

我有一个小注册“对话框”,只是一个带有两个按钮的视图,我使用...

调用
self.registerController = [UIStoryboard storyboardWithName:@"mainStoryboard" identifier:@"registerVC"];
[self.window addSubview:self.registerController.view];
[self.window bringSubviewToFront:self.registerController.view];

调用此代码时,视图将按预期显示。当用户单击其中一个按钮时,它会调用:

[self.registerController.view removeFromSuperview];
self.registerController = nil;

但观点并未消失。应用程序的其余部分保持正常运行,但“对话框”仍然存在于所有内容之前。因此,当您尝试关闭它时,通过单击“取消”按钮,它会将该消息发送到nil实例并且应用程序崩溃。

我怀疑这是显而易见的事情,但我一如既往地想念它。

1 个答案:

答案 0 :(得分:0)

迈克尔的帖子(上图)发现了这个问题,但还有一点神秘感。

我们的应用程序要求您最终注册一个电子邮件地址。当您第一次运行应用程序时,它会显示对话框,要求您这样做。这是通过在applicationDidBecomeActive中调用来处理的。

无论出于何种原因,applicationDidBecomeActive被调用两次。因此,屏幕上有两个对话框副本。按钮在其中一个上工作正常: - )

但为什么applicationDidBecomeActive会被调用两次?这是期待吗?