У меня есть, казалось бы, простая проблема, но я не могу найти решение! У меня есть подкласс UIViewController, который является моим корневым контроллером представления, и десять разных других контроллеров UIView, которые я хочу загружать в качестве дочерних контроллеров представления при вызове (по одному, а не все десять на экране одновременно).
Корневой контроллер имеет несколько кнопок, действия которых вызывают соответствующий код для вызова дочернего контроллера представления. Контроллер корневого представления загружается первым пером, и я хочу создать его экземпляр с помощью 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, добавьте его как дочерний вид к себе, затем добавьте его как подвид к вашему корневому представлению, но это не работает.
Кто-нибудь знает правильный способ сделать это?
_page01ViewController
в качестве подвида текущего представления. Вот почему он наложен. - person Ryan   schedule 25.08.2014