Могу ли я иметь несколько UIAlertViews для одного IBAction в XCode? - PullRequest
2 голосов
/ 12 августа 2011

Возможно ли запрограммировать несколько UIAlertViews для одного IBAction в XCode для показа в произвольном порядке. Например: я создаю приложение с несколькими вопросами, показанными в случайном порядке, когда нажата кнопка «Отправить», отображается предупреждение о том, правильный ответ или нет. Я хочу, чтобы для оповещения были разные сообщения, например, один раз, когда он показывает одно сообщение, а затем в следующий раз, когда он случайно показывает другое сообщение. Как бы я запрограммировал это?

Ответы [ 2 ]

2 голосов
/ 12 августа 2011

В вашем .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 голос
/ 14 августа 2011

определяет следующий макрос для проекта:

для секции 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]");
...