3

iOS 5에서는보기 컨트롤러의 프리젠 테이션 애니메이션이 완료되었을 때 추가 매개 변수와 감지 방법을 도입했습니다.presentModalViewController 애니메이션 완료 감지

iOS 4.x와 같은 이전 버전에서이를 수행 할 수있는 방법이 있습니까?

컨트롤러를 표시하기 위해 presentModalViewController을 사용했으며 애니메이션이 완료되지 않은 한 dismiss 메서드를 호출 할 수 없다는 것을 알았습니다.

그래서 애니메이션이 완료되면이를 어떻게 감지하여 무시할 수 있습니까?

+1

호기심에서 벗어난 상태에서 모달보기 컨트롤러를 즉시 해제하면 어떤 가치가 나타 납니까? – CodaFi

+0

오 ... 잠깐 기다려주십시오. 잠깐 기다려주세요. 잠깐 기다려주세요. 잠깐 기다려주세요. 연결에 오류가있는 경우 애니메이션이 완료되기 전에 감지되는 경우가 있습니다. 내가 그걸 무시하면 명령을 무시하는 것 같다. – blissweb

+0

웹에서 데이터를 가져 오는 것과 같이 장기 실행 프로세스가 완료되는 동안 무언가를하고 있다는 것을 보여주고 싶다면 ['SVprogressHUD'] (https://github.com/samvermette/SVProgressHUD)를 사용해보십시오. . 인터페이스를 비활성화하고 'UIActivityIndicator'를 표시합니다. –

답변

1

저는 modD가 제시 한 VC를 viewDidLoad, viewWillAppear 및 viewDidAppear에 해고하려했습니다. 처음 두 주사위는 없지만 disDisiss는 viewDidAppear에서 작동합니다. (애니메이션이 끝난 후 호출 될 수있는 종류의 의미가 있음).

그리고 이미 알고있을 것입니다.하지만 그렇지 않은 경우를 대비하여 : 제시된 VC에서 모달로 표시된 VC를 닫지 않아도됩니다. "네트워크 기다리기"VC는 viewDidAppear에서 연결 상태를 확인하고 연결이 끝나면 닫습니다.

+0

굉장 ... 그 덕분입니다. 희망은 많은 사람들에게 도움이되기를 바랍니다. 나중에 코딩 된 솔루션으로 게시물을 업데이트하려고 노력할 것입니다. – blissweb

0

정확한 방법이 없습니다. 제시된보기 컨트롤러의 viewDidDisappear:을 사용하면 가장 좋습니다. 모달 뷰 컨트롤러가 나타나거나 다른 이유로 인해 부울 인스턴스 변수를 사용하여 사라지는지 확인하십시오.

솔직히 말해서, 새로운 소프트웨어를 만드는 경우 iOS 5 이상을 대상으로 적극 권장합니다. 압도적 인 대다수의 사람들이 업그레이드되었으며, 나머지는 몇 달 안에 완료 될 것입니다. 새로운 프로젝트에 iOS 4를 지원할 이유가 없습니다.

+0

감사합니다. 나는 그것을 시도 할 것이다. 한 번로드 된 후에도 모달에서 메시지를 보낼 수 있다고 생각합니다. "viewWillAppear"및 "viewDidLoad"블록 중 어떤 것이 애니메이션이 완료된 후에 만 ​​트리거 할 것인지 생각할 수 있습니까? – blissweb

+0

정말 좋은 질문입니다. - [View Controller Life Cycle] (https://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/ViewLoadingandUnloading/ViewLoadingandUnloading.html#//apple_ref/doc/uid)의 Apple 설명서/TP40007457-CH10-SW1)은 매우 포괄적입니다. 어떤 논리를 어떤 논리에 넣을 지에 대한 아이디어를 얻기 위해 표 4-1을 읽는 것이 좋습니다. 스토리 보드 대신 xib를 사용하는 경우에도이 가이드가 계속 적용됩니다. –

0

"네트워크 요청을하는 동안 대기"라고하는 것입니까? 어쩌면 전체보기 컨트롤러 대신보기를 사용할 수 있습니다 (keyWindow에 첨부 된 전체 크기). 네트워크 요청을 시작하는 VC는보기를 제공하고 원하는 모든 애니메이션으로보기를 제거 할 수 있습니다. 나는 이것을하는 수업을 가지고있다. 시도해보고 싶다면 알려주세요.

+0

OS5 코드이므로 수동 가비지 수집을 추가해야합니다. – danh

+0

그래, 그게 괜찮은 해결 방법, 조금 더 많은 작업과 코드에 동의하고, 특정 질문에 대한 답이 있었는지 궁금해서 광산과 다른 사람들에게 이익이됩니다. 감사. – blissweb