2014-11-03 60 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:關閉它擁有該視圖的視圖控制器自己取出視圖。不要這樣做。