Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone removeFromSuperView在带iOS5的iPad2中不起作用_Iphone_Objective C_Uiview_Ios5 - Fatal编程技术网

Iphone removeFromSuperView在带iOS5的iPad2中不起作用

Iphone removeFromSuperView在带iOS5的iPad2中不起作用,iphone,objective-c,uiview,ios5,Iphone,Objective C,Uiview,Ios5,我有一个从SuperView中删除的小问题,因为它至少不能在iOS 5中使用iPad2。在我的表填充数据之前,我会显示一个自定义UIView警报,一旦完成,我会将其从超级视图中删除。除iPad2(iOS5)外,其他所有设备都可以正常工作。我遗漏了什么吗 感谢您的帮助 多谢各位 H M 添加视图后,可以立即释放它。(正在使用addSubview创建副本) 尝试: [[self view]addSubview:wbsSummaryLoadView.view]; [wbsSummaryLoadView

我有一个从SuperView中删除的小问题,因为它至少不能在iOS 5中使用iPad2。在我的表填充数据之前,我会显示一个自定义UIView警报,一旦完成,我会将其从超级视图中删除。除iPad2(iOS5)外,其他所有设备都可以正常工作。我遗漏了什么吗

感谢您的帮助

多谢各位

H M
添加视图后,可以立即释放它。(正在使用addSubview创建副本) 尝试:

[[self view]addSubview:wbsSummaryLoadView.view]; [wbsSummaryLoadView发布];
然后你就不必在意了,因为如果你释放整个视图,你也会释放添加的视图。

你存储了两个不同的对象。创建SaveUIDisplayViewController时,您正在该方法中声明一个新实例。当您删除它时,您正在使用(我猜)成员变量

SaveUIDisplayViewController*wbsummaryloadview=[[SaveUIDisplayViewController alloc]initWithNibName:@“SaveUIDisplayViewController”bundle:nil]

这将隐藏您在对象标头中定义的wbsSummaryLoadView的任何声明

当你来取下它的时候

[wbsSummaryLoadView.view从SuperView移除]


必须在某个地方声明wbsSummaryLoadView,所以(我猜这就是你没有发布.h文件的地方)如果在头中声明了它,那么它将与创建它时的不一样(事实上,此时它可能是
nil

你确定在其他地方没有问题吗?您尝试过调试什么-断点、分步执行代码、检查nil对象?它可能是其他失败的东西。您是否检查过SDK在iOS4和5之间的更改?如果您确定
removeFromSuperview
(我假设您的大写V是一个打字错误?)不起作用,那么您应该向苹果公司提交一份报告。但我怀疑可能是别的什么东西。也许如果你发布了一些代码,有人会发现它?@NickBull:我已经做了你提到的所有可能的方法,甚至用SDK检查了更改。好的,也许我可以在这里添加一些代码,并为那个打字错误感到抱歉。用代码更新。当iPad2(iOS5和早期版本)与iPad一起使用时,iPad2(iOS5)有这个问题,但在早期版本中使用iPad2。您发布的所有代码都是用相同的方法,或者它在两个不同的方法中?它们当然在两个不同的方法中。除非您想在代码中的其他地方再次控制wbsSummaryLoadView,并且您已将其声明为成员variableNick:不,它是单个iVar(专用)。为了显示在这里,我已经创建了SaveUIDisplayViewController的一个本地变量。请不要与本地var混淆,它只是显示var是什么类型的。希望你明白我的意思。在我发布答案之前,我没有看到你发表评论。。。您是否检查了
wbsSummaryLoadView.view
在您调用
removeFromSuperview
时是否为
nil
?是的,我检查了两次。在那之前一切都很好。
@private
    SaveUIDisplayViewController *wbsSummaryLoadView;
// Displaying

wbsSummaryLoadView = [[SaveUIDisplayViewController alloc] initWithNibName:@"SaveUIDisplayViewController" bundle:nil];
[[wbsSummaryLoadView view] setFrame:[self view].bounds];
[wbsSummaryLoadView setupSavingViewWithTitle:NSLocalizedString(@"Loading...", @"")];
[[self view] addSubview:wbsSummaryLoadView.view];

// Removing 

[wbsSummaryLoadView.view removeFromSuperview];
[wbsSummaryLoadView release];
wbsSummaryLoadView = nil;
[[self view] addSubview:wbsSummaryLoadView.view]; [wbsSummaryLoadView release];