我正在尝试让父视图控制器显示子视图控制器的视图。我在父母的中有以下内容viewDidLoad
:
-(void)viewDidLoad
{
[super viewDidLoad];
// create child view controller
[self setMenuController:[[MenuViewController alloc] initWithNibName:@"MenuView" bundle:nil]];
[self addChildViewController:[self menuController]];
// move the child view down 30 pt
CGRect frame = [[[self menuController] view] frame];
frame.origin.y = 30;
[[[self menuController] view] setFrame:frame];
[[self menuController] setWantsFullScreenLayout:YES];
[[self view] addSubview:[[self menuController] view]];
[[[self menuController] view] setNeedsLayout];
}
子视图控制器的 xib 只是一个居中、部分透明的红色视图UIImageView
(以查看重叠)。
如果我禁用状态栏application:didFinishLaunchingWithOptions:
,我会得到以下信息:
如果我启用状态栏,我会得到:
使用状态栏,子控制器UIView
会自动调整,为状态栏的位置腾出空间(因为图像视图居中,即顶部和底部各 10 分)。由于这是一个子视图,因此无论父视图是否有状态栏,它都应该始终使用视图控制器视图的完整大小。除了将任何子视图的大小调整为大 20 像素或在子视图控制器中使用包装器视图之外,还有什么方法可以实现这一点?