gpt4 book ai didi

iphone - 让对象在从 super View 中删除后发送自己的委托(delegate)消息

转载 作者:行者123 更新时间:2023-11-29 11:01:08 25 4
gpt4 key购买 nike

我有以下方法:

- (void) okButtonPushed
{
if ([self.delegate respondsToSelector:@selector(alertViewWillDismiss:)])
{
[self.delegate alertViewWillDismiss:self];
}

[self removeFromSuperview];
}

它是自定义 AlertView 对象上的一个 OK 按钮,按下该按钮会关闭警报。我希望代理在警报从 super View 中删除后发送一条消息,但显然这是不可能的,因为届时它将被解除分配。我能想到的唯一其他解决方案是让 superview 保留另一个指向我的对象的指针,但是每次我发出警报时,我都必须隐含地知道以确保保留另一个指向它的指针。在我的 AlertView 类中是否有更简洁的方法来执行此操作?

最佳答案

您可以使用 willMoveToSuperview:回调 (

-(void)willMoveToSuperview:(UIView *)newSuperview {
if (newSuperview == nil) {
if ([self.delegate respondsToSelector:@selector(alertViewWillDismiss:)]) {
[self.delegate alertViewWillDismiss:self];
}
}
}

它将在 View 被释放之前调用,并且就在之前它被真正从父 View 中删除(newSuperview == nil)。

编辑:如果您希望它只是之后它被(重新)移动了——使用didMoveToSuperview:

关于iphone - 让对象在从 super View 中删除后发送自己的委托(delegate)消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15863435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com