2012-12-14 38 views
2

我創建了一個自定義的UIViewController類,它在運行時創建一個ScrollView,並將其加載到視圖中。在我的自定義UIViewController的構造函數中查看代碼。ViewDidLoad沒有被我的自定義的UIViewController調用

 initControl(id, canEdit); 

     _controllers = new NSMutableArray(0); //required to keep view controllers around 

     _scrollView = new UIScrollView(); 
     _scrollView.BackgroundColor = UIColor.Green; 
     this.View = _scrollView; 

ViewDidAppear和ViewWillAppear被正常調用。

ViewDidLoad沒有被調用,我不知道爲什麼視圖顯示在屏幕上很好。

任何想法?

回答

2

訪問self.view

實例時被調用時的viewDidLoad中方法:

1)

- (id) init { 
     self = [super init]; 
     if (self) 
     { 
      ... 
      [self.view addSubview: self.toolbar]; 
     } 
} 

2)

viewContrl = [[MyViewController alloc] init]; 
viewContrl.view = webTopView; 

3)

viewContrl = [[MyViewController alloc] init]; 
[viewContrl.view addSubview: webTopView]; 
+0

謝謝!我沒有意識到,如果你自己設置視圖對象,它不起作用。 – Zoyt

0

當您分配視圖時會調用ViewDidLoad。因此,如果您只分配一次&的視圖,則每次只使用addSubview添加視圖,然後僅調用第一次。如果你想在每次添加它時調用它,那麼你需要每次分配它。如果它已被分配,也可以在分配它之前通過釋放視圖來處理內存管理。 另一種方法是創建一個包含您想要執行的操作的方法&在addSubview之後調用它。 它可以解決你的問題,如果你有任何疑問,然後隨時問我。

相關問題