父视图控制器调用自己而不是子

时间:2013-01-04 10:28:18

标签: ios uiviewcontroller addsubview

我(尝试)实现主视图控制器容器,以便稍后实例化介绍视图控制器,然后实际应用程序视图控制器。但我无法让它工作,我觉得我错过了一些非常基本的东西。介绍视图控制器在initWithFrame的引入视图中加载:

使用以下界面:

@interface ViewControllerMain : UIViewController
@property (strong, nonatomic) ViewControllerIntroduction *viewControllerIntroduction;
@end

以下实施

@implementation ViewControllerMain

- (void)loadView
{
    //  Instantiate the view controller for the adventure view
    self.viewControllerIntroduction = [ [ [ ViewControllerIntroduction alloc] init ] autorelease ];
}

- (void)viewDidLoad
{
    [ super viewDidLoad ];

    //  Instantiate the view controller for the introduction view
    [ self addChildViewController: self.viewControllerIntroduction ];
    [ self.view addSubview: self.viewControllerIntroduction.view ];
    [ self.viewControllerIntroduction didMoveToParentViewController: self ];
}

@end

当我跳过addSubView语句时,它会回到addChildViewController语句。

我一直在努力解决这个问题几个小时,任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:2)

只有在明确创建视图控制器的视图(-loadView)时,才应覆盖self.view方法。移除-loadView方法并将self.viewControllerIntroduction的初始化移至-viewDidLoad