我可以在Xcode中为一个IBAction使用多个UIAlertView吗?

时间:2011-08-11 22:44:18

标签: ios xcode uialertview ibaction

是否可以为Xcode中的一个IBAction编程多个UIAlertView以随机显示。例如:我正在制作一个随机显示多个​​问题的应用程序,当按下提交按钮时,会显示一条警告,说明答案是否正确。我希望警报有不同的消息,例如一次显示一条消息,然后下一次显示随机的不同消息。我该怎么编程?

2 个答案:

答案 0 :(得分:2)

在你的.h:

@interface MyViewController : UIViewController { 
    NSArray *messages;
}

@property (nonatomic, retain) NSArray *messages;

在你的.m

@implementation MyViewController
@synthesize messages;

- (dealloc) {
    [messages release];
}

- (void)viewDidLoad {
    messages = [[NSArray alloc] initWithObjects:@"Funny Message", @"Even Funnier Message", @"Hilarious message", @"ROFL", @"OK this is getting boring...", nil];
}

当您需要提醒时:

NSUInteger messageCount = [messages count];
int randomMessageIndex = arc4random() % messageCount;

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Title" message:[messages objectAtIndex:randomMessageIndex] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
[alert release];

答案 1 :(得分:1)

为项目定义以下宏:

对于msg部分,尝试使用随机索引

的数组
#define KAlert(TITLE,MSG) [[[[UIAlertView alloc] initWithTitle:(TITLE) 
          message:(MSG) 
         delegate:nil 
cancelButtonTitle:@"OK" 
otherButtonTitles:nil] autorelease] show]

可以用作简单的电话:

KAlert(@"Title", @"Message"); 

or KAlert(@"Title",@"[youarray objectatindex:randindex]");