从superview中删除modalViewController后,UIView消失

时间:2009-08-04 12:51:22

标签: iphone uiview model-view-controller

在我的应用程序中,我有一个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 animated:YES];

在我从tableViewNavigationController弹出模态视图几次后,消失了rectangleInfo UIView。

我弹出我的模态视图:

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

在我从superview中删除模态视图后,为什么tableViewController的子视图(rectangleInfo)消失了?

提前谢谢。

2 个答案:

答案 0 :(得分:1)

我很想知道你想用你的rectangleInfo视图做什么?根据它的大小,看起来你正试图模仿状态栏。为什么?如果需要,您可以隐藏状态栏。

您可以尝试的另一件事是在Interface Builder中以可视方式创建UIView。实际上不要将它添加到主视图中,而是在XIB中将其创建为具有适当大小的单独UIView等。然后在Xcode中为它创建一个插座并连接它。接下来,在视图控制器加载时将其添加为代码中的子视图。看看是否有所作为。这是特别奇怪,因为你说它只是在弹出几次后消失。如果你推动并弹出非模态方式,你会得到同样的问题,例如:

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

答案 1 :(得分:0)

我通过正确实现viewDidLoad和viewDidUnload方法来解决问题,以创建和发布我的子视图。