Root View Controller的子视图控制器位于root之上

时间:2014-08-25 00:59:59

标签: objective-c ios7 uiviewcontroller childviewcontroller

我有一个看似简单的问题,但我找不到解决方案!我有一个UIViewController的子类,它是我的根视图控制器,以及十个不同的其他UIView控制器,我想在调用时作为子视图控制器加载(一次一个,而不是一次在屏幕上全部十个。)

根控制器有几个按钮,其动作调用相应的代码以调出子视图控制器。根视图控制器首先由nib加载,我想用page01ViewController作为第一个子实例来实例化它。但每当我调用以下代码时,子视图控制器都会覆盖在我的rootViewController之上,隐藏了我的根控制器中的所有控制按钮!

 //  RDJrootPageViewController.m

 #import "RDJrootPageViewController.h"
 #import "RDJhomeScreenViewController.h"
 #import "RDJpage01ViewController.h"
 #import "RDJpage02ViewController.h"
 #import "RDJpage03ViewController.h"
 #import "RDJpage04ViewController.h"
 #import "RDJpage05ViewController.h"
 #import "RDJpage06ViewController.h"
 #import "RDJpage07ViewController.h"
 #import "RDJpage08ViewController.h"
 #import "RDJpage09ViewController.h"
 #import "RDJpage10ViewController.h"

 @interface RDJrootPageViewController ()

 @property (retain, nonatomic) RDJhomeScreenViewController *homeScreenViewController;
 @property (retain, nonatomic) RDJpage01ViewController *page01ViewController;
 @property (retain, nonatomic) RDJpage02ViewController *page02ViewController;
 @property (retain, nonatomic) RDJpage03ViewController *page03ViewController;
 @property (retain, nonatomic) RDJpage04ViewController *page04ViewController;
 @property (retain, nonatomic) RDJpage05ViewController *page05ViewController;
 @property (retain, nonatomic) RDJpage06ViewController *page06ViewController;
 @property (retain, nonatomic) RDJpage07ViewController *page07ViewController;
 @property (retain, nonatomic) RDJpage08ViewController *page08ViewController;
 @property (retain, nonatomic) RDJpage09ViewController *page09ViewController;
 @property (retain, nonatomic) RDJpage10ViewController *page10ViewController;


 @end

 @implementation RDJrootPageViewController

 - (void)viewDidLoad
 {
     [super viewDidLoad];
// Do any additional setup after loading the view.
currentPage = 1;

self.page01ViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"page01"];

[_page01ViewController.view setFrame:CGRectMake(0, 0, 1024, 768)];
[self addChildViewController:_page01ViewController];
[self.view addSubview:_page01ViewController.view];
[_page01ViewController didMoveToParentViewController:self];
[self.view setUserInteractionEnabled:YES];

 }

我的问题类似于此处提出的问题,但没有找到任何解决方案:

Return from Child View Controller to Container

我发现的每个教程都有相同的设置:制作新的VC,将其作为子视图添加到自己,然后将其作为子视图添加到根视图中,但它不起作用。

任何人都知道正确的方法吗?

1 个答案:

答案 0 :(得分:0)

您可能想要使用insertSubview:atIndex:。使用索引0将在所有其他视图下添加视图。或者,您可以拥有页面视图控制器视图的容器视图。需要在RDJrootPageViewController视图中的索引0处添加此容器视图。页面视图控制器视图可以添加到前面提到的容器视图中。

希望这有帮助。