2016-12-18 6 views
1

저는 현재 UIAlertController를 사용할 수 없도록 설정할 수 있습니다. 작업 버튼을 누르면 경고가 사라져서는 안됩니다.UIAlertController를 닫지 마십시오.

어떻게하면됩니까?

UIAlertController *alert; 

    int bestScore = [[[NSUserDefaults standardUserDefaults] objectForKey:@"bestScore"] intValue]; 
    if (!bestScore || bestScore < _score){ 
     [[NSUserDefaults standardUserDefaults] setObject:@(_score) forKey:@"bestScore"]; 
     alert = [UIAlertController alertControllerWithTitle:@"GAME OVER " 
                message:[NSString stringWithFormat:@"NEW RECORD! \n SCORE : %d \n\n\n\n\n\n", _score] preferredStyle:UIAlertControllerStyleActionSheet]; 
    } 
    else alert = [UIAlertController alertControllerWithTitle:@"GAME OVER" 
                 message:[NSString stringWithFormat:@"SCORE : %d \n Best score : %d \n\n\n\n\n\n ", _score, bestScore] preferredStyle:UIAlertControllerStyleAlert]; 

    [alert addAction:[UIAlertAction actionWithTitle:@"Try again" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { 
     [self newGame]; 
     [self addNewView]; 

    }]]; 


     [alert addAction:[UIAlertAction actionWithTitle:@"Answer" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { 
       [alert viewWillDisappear:NO]; 

      }]]; 
[self presentViewController:alert animated:YES completion:nil]; 

제발, 도와주세요!

+3

정보를 표시하려면 다른 기술을 사용하거나 작성해야합니다. 알림 컨트롤러는 버튼 하나가 눌러 지자 마자 해제됩니다. – Paulw11

+0

'UIAlertController'는 시스템의 '경고'입니다. 사용자가 수정할 수 없기 때문에 '맞춤 알림'을 작성하는 것이 좋습니다. – aircraft

답변

1

UIView가 포함 된 UIViewController를 만드는 것이 좋습니다. 이 UIView 내에서 필요한 정보를 표시하고 원하는 사용자 정의 단추 동작을 추가 할 수 있습니다.

UIView를 모달 뷰 컨트롤러처럼 보이게하려면 UIBlurEffectStyle과 함께 UIVisualEffectView를 추가하십시오.

이것은 인터페이스 빌더에 필요한 UIView를 추가 한 다음 관련 View Controller 클래스를 연결하는 스토리 보드/xib를 사용하여 일반적인보기 컨트롤러를 만드는 것처럼 간단합니다. 초기 설정 및 사용자 인터페이스를 완료 한 후 viewDidLoad에 다음 코드를 추가하십시오. 또한 당신은 viewWillAppear & viewWillDisappear 안에 필요한 애니메이션 등을 수행 할 수 있습니다.

UIBlurEffect *effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight] 
UIVisualEffectsView *blurView = [[UIVisualEffectView alloc] initWithEffect:effect]; 
[self.view insertSubview:blurView atIndex:0]; 
0

당신이 그나마 다음

alert.actions[1].enabled = NO 

같은 그것의 비활성화 된 단추 행동이 당신의 alertController 비 닫을 수 있도록 할 수 있습니다 alertController를 취소하려는 경우 당신이

같이 할 수 있습니다.