2016-11-04 53 views
0

我有一个正在从厦门国际银行文件中创建一个UIViewControllerviewDidLoad中和ViewDidAppear不会被调用

我初始化这样的:

_sharedSingleton = [[SlipChangesViewController alloc] init]; 
      [[NSBundle mainBundle] loadNibNamed:@"SlipChangesViewController" owner:_sharedSingleton options:nil]; 

我认为UIViewController的视图添加到子视图中的另一UIViewController中:

[self.view addSubview:slipChangesVC.view]; 

现在奇怪的是,该视图成功添加到子视图,但由于某种原因,viewDidLoadvieWillAppear都未被调用。然而,它成功地调用该方法来创建共享的单例方法和init方法。

我有双重检查,以确保:

  • 没有了UIViewsUIViewControllers是零
  • 从厦门国际银行的网点是否正确链接
  • 我打电话[super viewDidLoad][super viewWillAppear]

我检查stackOverflow上的各种线程,并尝试有没有成功的建议。例如。调用[slipChangesVC view]

有谁知道为什么这2种方法就不叫?

+0

也许看看这个http://stackoverflow.com/a/32965187/2237587。答案的底部 – Simon

回答

1

你加入了现有视图SlipChangesViewController视图。在这种情况下,viewDidLoad和viewWillAppear永远不会调用。您需要添加一个视图控制器此

试试这个

- (void)addChildViewC:(UIViewController *)childViewC 
{ 
    [self addChildViewController:childViewC]; 
    childViewC.view.frame = self.view.bounds; 
    [self.view addSubview:childViewC.view]; 
    [childViewC didMoveToParentViewController:self]; 
} 
1

这不是添加子视图控制器的正确方法。通过这种方式,查看所有者获得更改。从其视图控制器和视图控制器分离的视图停止接收viewDidLoad和其他视图方法。

如果要使其工作,请看已经回答了问题: add UIViewController in subview

0

我绝不会做一个视图控制器是独生子。这不是一个单身人士。它被创建,销毁,再次创建,再次销毁。

我认为viewDidLoad在视图控制器的生命周期中只被调用一次。所以让你成为一个单身人士可能会导致各种问题。

相关问题