didAddSubview 未被调用
didAddSubview not being called
我的 didAddSubview
没有被调用。
这就是我正在做的。
在我的viewController
- (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 视图的生命周期方法,我也不会从任何地方调用它。
谁能帮我弄清楚我错过的概念on/what我可能做错了吗?
PS: 我没有 UIView 的 xib 文件。
PS:有意添加 swift 标记,因为没有大块代码,我相信 swift 开发人员能够理解 question/code 或许可以帮助我。
didAddSubview
in SomeView
将在将子视图添加 到 SomeView
的实例时调用,但事实并非如此你在这里做什么。您正在添加 SomeView
作为另一个视图的子视图。
你想要didMoveToSuperview
;在此方法中,您可以使用 self
的 superview
属性 来识别它移动到的视图。
didAddSubview
将在 viewController.view
中调用,而不是您的 SomeView
,因为您使用 viewController.view.addSubview(subview)
我的 didAddSubview
没有被调用。
这就是我正在做的。
在我的viewController
- (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 视图的生命周期方法,我也不会从任何地方调用它。
谁能帮我弄清楚我错过的概念on/what我可能做错了吗?
PS: 我没有 UIView 的 xib 文件。
PS:有意添加 swift 标记,因为没有大块代码,我相信 swift 开发人员能够理解 question/code 或许可以帮助我。
didAddSubview
in SomeView
将在将子视图添加 到 SomeView
的实例时调用,但事实并非如此你在这里做什么。您正在添加 SomeView
作为另一个视图的子视图。
你想要didMoveToSuperview
;在此方法中,您可以使用 self
的 superview
属性 来识别它移动到的视图。
didAddSubview
将在 viewController.view
中调用,而不是您的 SomeView
,因为您使用 viewController.view.addSubview(subview)