繁体   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