在tabbarcontroller上加载视图

时间:2010-08-19 19:03:03

标签: iphone uitabbarcontroller ios4

我有一个标签栏控制器,在触摸视图导航右键之一的按钮时,我想在其上加载(导航控制器+视图)。位于其顶部的视图是半透明的,我应该能够在tabbar控制器中看到内容。

我尝试使用[self.tabbarcontroller.view addSubview:navController];

我工作得很好而且工作正常。但是当我试图在横向视图中做同样的事情时,它只占据了屏幕的一半。应该做什么 ?有没有办法解决这个问题

我可以使用该窗口加载我的新视图吗?它会占据整个屏幕吗?我尝试过autoresize mask并没有效果

2 个答案:

答案 0 :(得分:2)

navController / tabbarcontroller的界限是什么?你正确地设置窗口的那个吗?

您可以轻松输出:

NSLog(@"navController bounds: %@",NSStringFromCGRect(navController.view.bounds));

答案 1 :(得分:1)

你的意思是addSubview:navController.view?我认为您不能将视图控制器视为视图。

通常,在框架管理的类之外使用UIViewController时需要小心。 UIKit会自动处理它所知道的视图控制器的viewWillAppear / autorotation之类的东西,但是它不知道你的视图随机添加为子视图的VC。

编辑:如果您需要的是它看起来是透明的,您可以使用类似

的内容
UIGraphicsBeginImageContextWithOptions(tabBarController.view.size, 0, 0);
[tabBarController.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

然后使用img作为视图背景。它不会在背景中为这些东西设置动画,但如果您不需要它,那么很多比将大量透明视图堆叠在一起更快。