gpt4 book ai didi

ios - 按下主页按钮时如何关闭 UIAlertView?

转载 作者:行者123 更新时间:2023-12-01 17:19:33 25 4
gpt4 key购买 nike

我正在制作一个应该支持从 iOS5 开始的 iOS 版本的应用程序。它使用 UIAlertView,如果它在用户按下主页按钮时可见,我希望在用户返回应用程序之前将其关闭(即使用多任务重新打开应用程序时它消失了)。应用程序委托(delegate)中的所有方法都将其显示为不可见 (isVisible=NO),即使它在重新打开时仍然可见。有没有办法做到这一点?

谢谢。

最佳答案

或者您从 UIAlertView 继承您的类并为 UIApplicationWillResignActiveNotification 添加 NSNotification 观察者,并在发生通知时调用 alertview 方法 dismissWithClickedButtonIndex:
例子:
.h 文件

#import <UIKit/UIKit.h>

@interface ADAlertView : UIAlertView

@end

.m 文件
#import "ADAlertView.h"

@implementation ADAlertView

- (void) dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}

- (id) initWithTitle:(NSString *)title
message:(NSString *)message
delegate:(id)delegate
cancelButtonTitle:(NSString *)cancelButtonTitle
otherButtonTitles:(NSString *)otherButtonTitles, ... {
self = [super initWithTitle:title
message:message
delegate:delegate
cancelButtonTitle:cancelButtonTitle
otherButtonTitles:otherButtonTitles, nil];

if (self) {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(dismiss:)
name:UIApplicationDidEnterBackgroundNotification
object:nil];
}

return self;
}

- (void) dismiss:(NSNotification *)notication {
[self dismissWithClickedButtonIndex:[self cancelButtonIndex] animated:YES];
}

@end

使用从 UIAlertView 继承的您自己的类,您不需要存储指向 alertview 或其他内容的链接,您只需要做一件事,将 UIAlertView 替换为 ADAlertView(或任何其他类名)。
随意使用此代码示例(如果您不使用 ARC,则应在 [super dealloc] 之后添加到 dealloc 方法 [[NSNotificatioCenter defaultCenter] removeObserver:self] )

关于ios - 按下主页按钮时如何关闭 UIAlertView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15008633/

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