没有使用我的自定义UIViewController调用ViewDidLoad

时间:2012-12-14 04:06:08

标签: objective-c ios xamarin.ios

我创建了一个自定义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,因为视图显示在屏幕上就好了。

有什么想法吗?

2 个答案:

答案 0 :(得分: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];

答案 1 :(得分:0)

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