2011-08-11 7 views
2

Xcode에서 하나의 IBAction에 대해 여러 개의 UIAlertView를 프로그램하여 무작위로 표시 할 수 있습니까? 예를 들어, 여러 개의 질문이 무작위로 표시된 앱을 만들고 있는데, 제출 버튼을 누르면 답변이 올바른지 아닌지 알리는 경고가 표시됩니다. 한 번에 한 메시지를 표시 한 다음 다른 메시지를 무작위로 표시 할 때와 같이 경고에 대한 다른 메시지가 있어야합니다. 어떻게 프로그램 할 수 있을까요? 당신의 .H에서Xcode에서 하나의 IBAction에 대해 여러 개의 UIAlertView를 가질 수 있습니까?

답변

2

: 프로젝트에 대한 다음과 같은 매크로를 정의

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]; 
+0

그것은 메시지가 선언되지 않은 식별자라고 말한다 ...? –

+0

.h에서 메시지를 선언 함 - 업데이트 된 질문보기 –

+0

코드를 실행하면 프로그램이 한 가지 질문에 대해 작동하지만 충돌이 발생하고 "프로그램 수신 신호 : EXC_BAD_ACCESS"오류가 표시됩니다. 귀하의 코드를 복사하여 붙여 넣었으므로 정확하게 입력되었습니다. –

1

: 당신의하는 .m에서

@interface MyViewController : UIViewController { 
    NSArray *messages; 
} 

@property (nonatomic, retain) NSArray *messages; 

@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]; 
} 

당신은 경고를 필요로 할 때

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]"); 
관련 문제