iOS-모달보기가 있는지 확인하는 방법
모달 뷰가 있는지 확인하는 방법이 있습니까? 모달 뷰가있는 경우에만 메서드를 실행하고 싶습니다. 또한 여러 모달 뷰가있는 경우 특정 모달 뷰가 있는지 확인하는 방법이 있습니까?
다음 코드를 사용하여 모달 뷰를 표시하고 닫습니다.
[self presentModalViewController:myModalView animated:YES];
[self dismissModalViewControllerAnimated:YES];
미리 감사드립니다!
건배, 에반
추신. 내 모달 뷰에는 뷰 컨트롤러가 있지만 비동기 적으로 실행되는 별도의 클래스에서 모달 뷰가 있는지 확인하고 싶습니다.
부모 뷰 컨트롤러에서 모달 뷰 컨트롤러가 있는지 확인하고 있습니까? 그렇다면 해당 뷰 컨트롤러의 modalViewController 속성을 확인할 수 있습니다.
BOOL modalPresent = (self.modalViewController);
특정 모달 뷰 컨트롤러를 확인하려면 다음과 같이 모달 뷰 컨트롤러의 클래스 이름을 얻을 수 있습니다.
NSString *modalClassName = NSStringFromClass([self.modalViewController class]);
다음을 사용하여 확인할 수 있습니다 self.presentedViewController
, 어떤 수익을The view controller that is presented by this view controller, or one of its ancestors in the view controller hierarchy.
나를 위해 일한 것은 다음과 같습니다.
// this is the trick: set parent view controller as application's window root view controller
UIApplication.sharedApplication.delegate.window.rootViewController = viewController;
// assert no modal view is presented
XCTAssertNil(viewController.presentedViewController);
// simulate button tap which shows modal view controller
[viewController.deleteButton sendActionsForControlEvents:UIControlEventTouchUpInside];
// assert that modal view controller is presented
XCTAssertEqualObjects(viewController.presentedViewController.class, MyModalViewController.class);
내가 테스트 한 한, 이것은 iOS7 및 iOS8에서 작동합니다. 그러나 iOS6에서는 시도하지 않았습니다.
view controller
부모로부터 모달의 존재를 확인할 수 있습니다view controller
if ( [[self presentingViewController] presentingViewController] ) {
}
참조 URL : https://stackoverflow.com/questions/5338049/ios-how-to-check-if-a-modal-view-is-present
'development' 카테고리의 다른 글
이전 참조자를 찾기위한 Django 요청 (0) | 2021.01.05 |
---|---|
Rails 3에서 최소 / 최대 유효성 검사기를 구현하는 방법은 무엇입니까? (0) | 2021.01.05 |
숨겨진 상위 사업부 내에 하위 사업부 표시 (0) | 2021.01.05 |
Intent.putExtra 목록 (0) | 2021.01.05 |
스토리 보드에서 "initwithNibName"을 어떻게 변경합니까? (0) | 2021.01.05 |