0

一見単純な問題ですが、解決策が見つかりません。ルート ビュー コントローラーである UIViewController のサブクラスと、呼び出されたときに子ビュー コントローラーとしてロードする 10 個の他の UIViewcontrollers があります (一度に 1 つずつ、一度に 10 個すべてを画面に表示するわけではありません)。

ルート コントローラにはいくつかのボタンがあり、そのアクションによってそれぞれのコードが呼び出され、子ビュー コントローラが表示されます。ルート ビュー コントローラーは 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];

 }

私の問題はここで尋ねられたものと似ていますが、解決策は特定されていません:

子ビュー コントローラーからコンテナーに戻る

私が見つけたすべてのチュートリアルには同じ設定があります。新しい VC を作成し、それを childView として自分自身に追加し、それをサブビューとしてルート ビューに追加しますが、機能しません。

誰でもこれを行う正しい方法を知っていますか?

4

1 に答える 1

0

insertSubview:atIndex: を使用することもできます。0 のインデックスを使用すると、他のすべてのビューの下にビューが追加されます。または、ページ ビュー コントローラーのビューのコンテナー ビューを使用することもできます。このコンテナー ビューは、RDJrootPageViewController のビューのインデックス 0 に追加する必要があります。ページ ビュー コントローラー ビューは、前述のコンテナー ビューに追加できます。

お役に立てれば。

于 2014-08-25T02:48:04.370 に答える