2016-11-04 106 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在視圖控制器的生命週期中只被調用一次。所以讓你成爲一個單身人士可能會導致各種問題。

相關問題