3

我创建了一个自定义 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 没有被调用,我不知道为什么,因为视图在屏幕上显示得很好。

有任何想法吗?

4

2 回答 2

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];
于 2012-12-14T04:20:48.363 回答
0

在分配视图时调用 ViewDidLoad。因此,如果您只分配一次视图并且每次只使用 addSubview 添加,那么它只在第一次调用。如果你想在每次添加的时候调用它,那么你需要每次都分配它。如果视图已经分配,​​还可以通过在分配视图之前释放它来处理内存管理。另一种方法是创建一个方法,其中包含您想要执行的操作并在 addSubview 之后调用它。它可能会解决您的问题,如果您有任何疑问,请随时问我。

于 2012-12-14T05:02:17.700 回答