2014-11-03 55 views
0

我添加视图在我的主视图像这样的工作:removeFromSuperView不会在iOS 8

self.voteResult = [[voteResultViewController alloc]initWithNibName:@"voteResultViewController" bundle:nil];  
    UIWindow* mainWindow = [[UIApplication sharedApplication] keyWindow]; 
    [mainWindow addSubview:[self.viewControllerForPresentation view]]; 
    [self.viewControllerForPresentation presentViewController:self.voteResult animated:YES completion:Nil]; 

然后用此将其取出:

[self.viewControllerForPresentation.view removeFromSuperview]; 

作品中的iOS 7,但在iOS 8中不再更长,我需要做不同的事情吗?

+2

你为什么要自己添加视图,还要使用'-presentViewController:animated:completion:'?该方法呈现视图控制器,这应该使视图适当地显示。然后你应该使用'-dismissViewControllerAnimated:completion:'来关闭控制器,这也将删除视图。 – Caleb 2014-11-03 14:57:32

回答

-1

试试这个。

[self dismissViewControllerAnimated:voteResult completion:nil]; 
1

看起来你在这里工作太多了。您使用-addSubview:自己将self.viewControllerForPresentation.view添加到视图中,但是您还使用-presentViewController:animated:completion:来呈现视图控制器。该方法呈现有问题的视图控制器,然后该视图控制器负责将视图添加到视图层次结构中。要删除该视图,您需要使用-dismissViewControllerAniamted:completion:,并且该视图应该相应地删除该视图。

总之,无论是添加并使用-addSubview:-removeFromSuperview呈现使用-presentViewController:animated:completion:和使用-dismissViewControllerAniamted:completion:关闭它拥有该视图的视图控制器自己取出视图。不要这样做。