首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >目标-C UIKit UIAlertViewDelegate未调用

目标-C UIKit UIAlertViewDelegate未调用
EN

Stack Overflow用户
提问于 2015-10-10 08:46:01
回答 1查看 86关注 0票数 3

我开始学习目标-C uikit,我遇到了一个problem.UIAlertViewDelegate而不是called.Can,有人告诉我为什么?谢谢!

代码语言:javascript
复制
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface AlertLearn : NSObject <UIAlertViewDelegate>
-(void) showAlertTest;
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex;
@end

#import "AlertLearn.h"
#import <UIKit/UIKit.h>

@implementation AlertLearn

-(void) showAlertTest{
    UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"alert" message:@"alert test" delegate:self cancelButtonTitle:@"cancel" otherButtonTitles:@"ok", nil];
    [alertView show];

}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{

    NSLog(@"clickedButtonAtIndex = %ld",buttonIndex );
    NSString *buttonTitle = [alertView buttonTitleAtIndex:buttonIndex];
    NSLog(@"clickedButtonAtIndex title = %@",buttonTitle);
}
@end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-10 08:51:10

这是因为您要在比预期更严格的生命周期内分配警报视图,请尝试将警报设置为iVar或属性,然后再试一次。

代码语言:javascript
复制
@interface AlertLearn : NSObject <UIAlertViewDelegate>
{
UIAlertView * alertView;
}
-(void) showAlertTest;
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex;
@end
...
-(void) showAlertTest{
    alertView = [[UIAlertView alloc] initWithTitle:@"alert" message:@"alert test" delegate:self cancelButtonTitle:@"cancel" otherButtonTitles:@"ok", nil];
    [alertView show];

}

并从showAlertTest方法中删除定义。

P.S.:请注意,这种类型的显示警告视图在iOS 8中被取消,您应该使用UIAlertController,但是如果出于任何原因您需要支持iOS 7及以下,那么您应该为您的警告做一个强指针。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33052066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档