문제

보기가 나타나 자마자 (버튼을 사용하지 않고) 경고보기를 표시하려고합니다. ViewController.m에서 나는 다음과 같습니다.

- (void) viewWillAppear:(BOOL)animated
{
    UIAlertView *alert = [[UIAlertView alloc]
initWithTitle: @"User Information" message: @"Hello"
                              delegate: self cancelButtonTitle:nil otherButtonTitles: @"Continue", nil];

    [alert show];

    [alert release];
}

그리고 ViewController.h에서 나는 다음과 같습니다.

IBOutlet UIView *alert; 

.xib 파일에 아무것도하지 않았습니다.

시뮬레이터에서 실행되면 콘솔에서 다음을 얻습니다.

2009-11-30 23 : 41 : 41 : 36.079 BatteryApp [867 : 20B] *** 예외 예외로 인해 앱 종료 예외 'nsinternalinconsistencyException', 이유 : '-[uiviewController _loadviewfromnamed :] "배터리 appviewController"NIB를로드했습니다. 설정되지 않았습니다. '

내가 잘못한 아이디어, 내 XIB와 관련이 있습니까?

편집 // xib의 새로운보기에 알림을 연결하지만 여전히 운이 없습니다.

도움이 되었습니까?

해결책

문제는 두 개의 핵심 애니메이션 (현재보기를 보는 것과 경고를 보여주는 것)이 겹친다는 것입니다. 이 해결 방법에 따라이 두 애니메이션 동작을 분리해야합니다.

  1. 경고 코드를 입력하십시오 viewDidAppear,보다는 viewWillAppear

  2. 부르다 [alert performSelector:@selector(show) withObject:nil afterDelay:0.0]. 이렇게하면 현재 애니메이션을 완료 한 후 경고가 발생합니다.

방출에주의를 기울여야 할 수도 있습니다 alert 아직. 내가 당신이라면, 나는 별도의 방법 (예 : showhelloalert)을 갖고 viewDidAppear에서 호출 할 것입니다.

- (void)viewDidAppear: (BOOL)animated {
  [self performSelector:@selector(showHello) withObject:nil afterDelay:0.0f];
  [super viewDidAppear:animated];
}

다른 팁

ViewDidAppear에 경고를 사용해보십시오.

또한, Iboutlet은 무엇입니까? 모든 것을 꺼내십시오.

인터페이스 빌더에서 XIB 파일을 열고 파일 소유자의 드래그 (클래스이어야합니다. BatteryAppViewController) (경고가 아님)와 팝업되는 메뉴에서보기를 선택하십시오. 로그는이 콘센트 연결을 만들지 않았 음을 나타냅니다.

인터페이스 빌더에서 Uialerts를 연결하지 않습니다. 알림에는 사용자 정의 가능한 펜촉이 없으므로 인터페이스 빌더에로드 할 수 없습니다. 다음을 제거해야합니다.

IBOutlet UIView *alert;

...완전히.

오류 메시지는 뷰 컨트롤러에 대해 뷰가 정의되지 않았다고 표시됩니다. 인터페이스 빌더로 설정해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top