2012-08-23 20 views
2

我想在主視圖控制器中添加一個子視圖控制器,但我只想要涵蓋一個部分,而不是所有的屏幕。我想要它在屏幕中間。而且,想知道如果我可以使這個子視圖控制器透明,所以我仍然可以看到我的主視圖控制器的圖像背景。 目前,我有我的mainviewcontroller,我添加使用這種方式的另一個視圖 - 控制:如何添加一個SubViewController在MainViewController的中間

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

但我subviewcontroller涵蓋了所有的屏幕... 謝謝

回答

0

以編程方式做到這一點: 首先添加一個空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]; 
[containerView didMoveToParentViewController:self]; 

如果你用故事板和目標iOS 6,你甚至不需要做任何編程。在故事板視圖(以前稱爲Interface Builder)中,您可以將Container View從對象庫中刪除到主視圖。界面生成器將自動創建一個子視圖控制器,但是您也可以將包含segue指向任何其他視圖控制器。

+0

我認爲最後一行應該是'[self.otherViewController didMoveToParentViewController:self];' – damian

相關問題