viewWillAppear, iPhone에서 알림 뷰 추가
-
22-07-2019 - |
문제
보기가 나타나 자마자 (버튼을 사용하지 않고) 경고보기를 표시하려고합니다. 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의 새로운보기에 알림을 연결하지만 여전히 운이 없습니다.
해결책
문제는 두 개의 핵심 애니메이션 (현재보기를 보는 것과 경고를 보여주는 것)이 겹친다는 것입니다. 이 해결 방법에 따라이 두 애니메이션 동작을 분리해야합니다.
경고 코드를 입력하십시오
viewDidAppear
,보다는viewWillAppear
부르다
[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;
...완전히.
오류 메시지는 뷰 컨트롤러에 대해 뷰가 정의되지 않았다고 표시됩니다. 인터페이스 빌더로 설정해야합니다.