3

我想在主视图控制器中添加一个子视图控制器,但我只想覆盖一个部分,而不是整个屏幕。我想要它在屏幕中间。而且,想知道我是否可以让这个 subviewcontroller 透明,所以我仍然可以看到我的主 viewcontroller 的图像背景。目前,我有我的主视图控制器,并使用这种方式添加另一个视图控制器:

MenuAllEntriesViewController *menuAE = [[MenuAllEntriesViewController alloc] init];
[menuAE setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentModalViewController:menuAE animated:YES];

但是我的 subviewcontroller 覆盖了所有屏幕...谢谢

4

1 回答 1

1

以编程方式执行此操作:首先UIView在主视图中添加一个空白。MainWindowController还要从您的视图创建一个 IBOutlet 。这将是您的子视图控制器的容器视图。只需将其大小和位置设置为您要显示子视图的位置。

然后在您的MainWindowController.m您可以使用以下代码添加一个子视图控制器,其视图显示在您的主视图中的指定视图中:

//keep a strong reference to the view controller
self.otherViewController = [[OtherViewController alloc] init]; 
[self addChildViewController:otherViewController];
//set the frame
CGFloat width = containerView.frame.size.width;
CGFloat height = containerView.frame.size.height;
self.otherViewController.view.frame = CGRectMake(0, 0, width, height);
[containerView addSubview:self.otherViewController.view];
[self.otherViewController didMoveToParentViewController:self];

如果您使用 Storyboards 并以 iOS 6 为目标,您甚至不需要进行任何编程。在 Storyboard 视图(以前称为 Interface Builder)中,您可以将 aContainer View从 Objects Library 拖放到您的主视图中。Interface Builder 将自动创建一个子视图控制器,但您也可以将包含 segue 指向任何其他视图控制器。

于 2012-11-06T14:29:44.847 回答