gpt4 book ai didi

iphone - 常用 UIAlertView 代码放在哪里

转载 作者:行者123 更新时间:2023-12-03 21:16:34 27 4
gpt4 key购买 nike

我有一个密码 UIAlertView,我们要求用户提供。我需要根据情况在不同的 View 上询问它,从 downloadViewController (用户下载数据后),当他们切换到他们的数据时(如果用户有多个帐户,每个帐户都有一个密码),以及应用程序何时从 sleep 中唤醒(从应用程序委托(delegate))。

我有常见的 UIAlertView 代码,基本上检查数据库中的密码和内容。有没有一个好的地方可以放置这个通用代码?我觉得我正在复制并粘贴警报的显示以及该警报的委托(delegate)方法。在某些 View Controller 中,还会有其他警报,我必须通过特定 ViewController 中的 UIAlertViewDelegate 来响应这些警报。

最佳答案

您可以创建一个这样的类别,然后重用代码:

*.h 文件

@interface UIViewController(Transitions)

- (void) showAlertWithDelegate: (id) delegate;

@end

*.m 文件

-(void) showAlertWithDelegate:(id)delegate {

id _delegate = ( delegate == nil) ? self : delegate;
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle: NSLocalizedString(@"Alert Text",@"Alert Text")
message: NSLocalizedString( @"Msg Alert",@"Msg Alert")
delegate:_delegate
cancelButtonTitle:nil
otherButtonTitles: NSLocalizedString(@"OK",@"OK"),nil];
[alert setTag:0]; //so we know in the callback of the alert where we come from - in case we have multiple different alerts
[alert show];
}

//the local callback for the alert - this handles the case when we call the alert with delegate nil
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
D_DBG(@"%i %i",[alertView tag],buttonIndex);
}

在您需要警报的 UIViewController 类中导入 *.h 文件。

现在如果你这样调用:

   [self showAlertWithDelegate:nil];

它将显示您的警报,并且委托(delegate)将被实现

 - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex

在界面中,当您这样调用它时:

   [self showAlertWithDelegate:self];

您需要提供回调

 - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex

在您调用它的类中,因此您可以处理用户按下的任何内容 - 与界面中实现的方式不同。

关于iphone - 常用 UIAlertView 代码放在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12572841/

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