簡體   English   中英

沒有使用我的自定義UIViewController調用ViewDidLoad

[英]ViewDidLoad not being called with my custom UIViewController

我創建了一個自定義的UIViewController類,它在運行時創建ScrollView,並將其加載到視圖中。 請參閱我的自定義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沒有被調用,我不知道為什么因為視圖顯示在屏幕上就好了。

有任何想法嗎?

訪問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];

分配視圖時會調用ViewDidLoad。 因此,如果您要分配視圖一次並且每次僅使用addSubview添加,那么它僅首次調用。 如果你想在每次添加它時調用它,那么你需要每次都分配它。 如果已經分配了視圖,還可以在分配視圖之前釋放視圖來處理內存管理。 另一種方法是創建一個方法,其中包含您要執行的操作並在addSubview之后調用它。 它可以解決您的問題,如果您有任何疑問,請隨時問我。

暫無
暫無

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

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