簡體   English   中英

removeFromSuperView在iOS 8上不起作用

[英]removeFromSuperView don't work on 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中不再有效,我需要做其他不同的事情嗎?

您似乎在這里做了太多工作。 您要添加self.viewControllerForPresentation.view使用到視圖自己-addSubview:但你也呈現使用視圖控制器-presentViewController:animated:completion: 該方法提供了相關的視圖控制器,然后應負責將視圖添加到視圖層次結構中。 要刪除視圖,您可以使用-dismissViewControllerAniamted:completion:這又應該適當地刪除視圖。

簡而言之,您可以使用-addSubview:-removeFromSuperview自己添加和刪除視圖, 或者使用-presentViewController:animated:completion:呈現擁有視圖的視圖控制器,然后使用-dismissViewControllerAniamted:completion:將其關閉。 不要兩者都做。

嘗試這個。

 [self dismissViewControllerAnimated:voteResult completion:nil];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM