我有一个tabBarController,上面有三个viewControllers。 当选择了viewController 1并且我制作了90度时,我隐藏了tabBar,我必须将当前视图添加到tabBarController,否则会出现一个空白区域,其中tabBar就是。
如果现在我将iPhone旋转到之前的方向(垂直正常位置)我删除了查看视图,但视图控制器上没有显示视图,我想应该显示原始视图(addsubview调用之前的视图) ,实际上如果我选择第二个viewController,稍后我会回到viewController 1,视图就会完美呈现。
我不明白为什么会这样,你能帮助我吗?
我认为问题是我在tabbarcontroller上添加了一个视图(self.view addSubview:vista_AS.view))我需要这个来使tabbar不可见,后来当我删除这个视图时tabbarcontroller丢失了一些方式viewcontroller 0视图引用。我不明白为什么当我改为viewcontroller 1然后回到0时,视图就可以了。有没有办法重新加载viewcontroller 0视图??
更新2 : 从建议的编辑到答案中包含作者的代码
这是我的代码:
if(toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)
{
self.tabBar.hidden = TRUE;
vista_AS = [delegate.tabBarController.viewControllers objectAtIndex:0];
vista_AS.view.frame = CGRectMake(0, 0, 320, 480);
[self.view addSubview:vista_AS.view];
}
else {
if ( (self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (self.interfaceOrientation == UIInterfaceOrientationLandscapeRight) )
{
[vista_AS.view removeFromSuperview];
self.tabBar.hidden = FALSE;
}
答案 0 :(得分:0)
您的视图控制器1正在被释放,由于过度释放或由于内存而由系统自行解除分配。发布一些代码,显示如何附加和删除覆盖标签栏的视图。这可能就是答案。
答案 1 :(得分:0)
当您将vista_AS
添加为tabBarController
的子视图时,您将vista_AS
的父视图更改为其最新视图父级,从而断开与tabBarController
的链接。
当您更改iPhone的方向时,您会从其超级视图中删除vista_AS
,但tabBarController
与您的视图之间的链接仍然会中断。我相信这就是为什么你看不到这个观点。解决方案可能是将vista_AS
的父级重新分配给tabBarController.view
或[tabBarController.view addSubview:vista_AS]
。