簡體   English   中英

從超級視圖中刪除modalViewController后,UIView消失

[英]UIView disappears after modalViewController is removed from superview

在我的應用程序中,我有一個tabBarController和一個navigationController。 我的視圖控制器之一是TableViewController,在navigationBar下,我向視圖添加了uiView作為子視圖,如下所示:

rectangleInfo = [[UIView alloc] initWithFrame:CGRectMake(0,0,[[UIScreen mainScreen] applicationFrame].size.width,26)]; rectangleInfo.autoresizingMask = (UIViewAutoresizingFlexibleWidth); rectangleInfo.backgroundColor = [UIColor darkGrayColor]; [self.view addSubview: rectangleInfo];

當我單擊tableView中的單元格時,我按下了UIViewController:

[feedViewController setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];

[[self navigationController] presentModalViewController:feedViewController動畫:是];

在我從tableViewNavigationController彈出模態視圖幾次后,rectangleInfo UIView消失了。

我像這樣彈出我的模態視圖:

[[UIApplication sharedApplication] setStatusBarHidden:NO animated:YES];
[self setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self dismissModalViewControllerAnimated:YES];

任何想法為什么我從超級視圖中刪除模式視圖后,tableViewController的子視圖(rectangleInfo)消失了?

先感謝您。

我很好奇您要對您的rectangleInfo視圖做什么? 根據它的大小,您似乎在模仿狀態欄。 為什么? 您可以根據需要隱藏狀態欄。

您可以嘗試的另一件事是在Interface Builder中直觀地創建UIView。 實際上,不要將其添加到主視圖中,而是在XIB中將其創建為具有適當大小的單獨UIView,以此類推。然后在Xcode中為其創建出口並連接它。 接下來,在加載視圖控制器時,將其添加為代碼中的子視圖。 看看是否有區別。 這尤其奇怪,因為您說它僅在彈出幾次后才會消失。 如果以非模式方式推送和彈出,是否會遇到相同的問題,例如:

[[self navigationController] pushViewController:feedViewController animated:YES];
[[self navigationController] popViewControllerAnimated:YES];

我通過正確實現用於創建和釋放子視圖的viewDidLoad和viewDidUnload方法解決了該問題。

暫無
暫無

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

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