首页 > 解决方案 > didAddSubview 没有被调用

问题描述

didAddSubview的没有被调用。

这就是我正在做的事情。

在我的视图控制器中

- (void)viewDidLoad {
    [super viewDidLoad];
  SomeView *view = [[SomeView alloc] initWithFrame:CGRectMake(0.0, 0.0,    CGRectGetWidth(self.view.frame), CGRectGetHeight(self.view.frame))];
  [self.view addSubview:view];
}

我的哪里SomeView是 UI 视图(.h 文件)

#import <UIKit/UIKit.h>

@interface DyteMeetingView : UIView
@end

didAddSubview喜欢这个

- (void)didAddSubview:(UIView *)subview{
    [super didAddSubview:subview];
    [self someFunc];
}

我放置didAddSubview了调试器,但调试器从未到达这里,因此 [self someFunc];也没有被调用。

由于didAddSubview是 UI 视图的生命周期方法,因此我也不会从任何地方调用它。

有人可以帮我弄清楚我错过的概念/我可能做错了什么吗?

PS:我没有任何用于 UIView 的 xib 文件。

PS:也故意添加了 swift 标签,因为没有大量代码,我相信 swift 开发人员将能够理解问题/代码并可能能够帮助我。

标签: iosswiftobjective-cxcode

解决方案


didAddSubviewSomeView将子视图添加到 的实例SomeView时将调用 in ,但这不是您在这里所做的。您正在添加 aSomeView作为另一个视图的子视图。

你想要didMoveToSuperview; 在此方法中,您可以使用 的superview属性self来标识它移动到的视图。


推荐阅读