removeFromSuperView在iOS 8上不起作用

时间:2014-11-03 14:47:51

标签: ios

我在主视图中添加了一个视图,如下所示:

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 个答案:

答案 0 :(得分:1)

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

简而言之, 使用-addSubview:-removeFromSuperview自己添加和删除视图,显示拥有该视图的视图控制器-presentViewController:animated:completion:并使用-dismissViewControllerAniamted:completion:将其解雇。不要两者兼顾。

答案 1 :(得分:-1)

试试这个。

 [self dismissViewControllerAnimated:voteResult completion:nil];