簡體   English   中英

iOS viewDidLoad未被觸發

[英]iOS viewDidLoad is not fired

在我的應用程序中,我將子視圖放入視圖中:

subViewController = [[SubViewController alloc] init];
NSArray *nibContents = [[NSBundle mainBundle] loadNibNamed:@"SubView" owner:subViewViewController options:nil];
UIView *view = [nibContents objectAtIndex:0];
view.frame = CGRectMake(2, 0, myView.frame.size.width - 4, myView.frame.size.height);
[myView addSubview:view];

但是從不觸發SubViewController中的viewDidLoad

這是代碼:

- (void)viewDidLoad
{
  [super viewDidLoad];
   NSLog(@"ViewDidLoad");
}

在IB中,我將文件所有者設置為SubViewController 我不知道問題出在哪里。 有任何想法嗎? 謝謝。

-viewDidLoad未被調用,因為您沒有執行任何代碼來強制加載它。 視圖控制器的視圖是延遲加載的 如果您嘗試訪問或使用subViewController.view執行某些subViewController.view ,它將在控制器上調用viewDidLoad,因為它將創建視圖。

只是將UIViewControllers視圖添加到另一個視圖不會使其“活動”,它將不會接收viewDidLoad,viewDidAppear,viewDidDisappear等。

我會這樣做:

subViewController = [[SubViewController alloc] initWithNibName:@"SubView" bundle:nil];
subViewController.view.frame = CGRectMake(2, 0, myView.frame.size.width - 4, myView.frame.size.height);
[self addChildViewController:subViewController];
[self.view addSubview:subViewController.view];
[subViewController didMoveToParentViewController:self];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM