저는 UpdateViewController에서 모달 뷰 (UpdateViewController)를 닫을 대리자 MyDownloadController에 의해 호출되는 함수를 가지고 있습니다.iPhone : modalview가 닫히지 않습니다.
-(void)errorDownloading {
self.downloadController.delegate = nil;
[downloadController release];
[self dismissModalViewControllerAnimated:YES];
}
위임 포인터를 사용하지 않고이 작업을 시도했지만 여전히보기를 닫지 않습니다.
대리자 MyDownloadController 내의 이와 같은 방법 호출
-(void)connectionError {
if([delegate respondsToSelector:@selector(errorDownloading)]){
[delegate errorDownloading];
}
}
및이 기능은 다른 대표 (MyConnectionController)에 의해 호출된다.
많은 대표자가있는 데 문제가 있습니까? 그리고 포인터 오류 또는 뭔가 그들과 함께 닫을 수있는 모달보기 효과가 될까요? 그렇다면 어떻게/왜?
UpdateViewController (the actual modal view I am trying to close)
|- MyDownloadController (the controller that abstracts the process being done)
|- MyConnectionController (a helper class I wrote to interact with NSURLConnection)
|- NSURLConnection
이 문제를 진단하는 가장 좋은 방법은 무엇입니까 :
나는 대표단이 구조를 가지고?
다양한 부분을 추상화하려는 경우 델리게이트 이외의 다른 방법으로 더 좋은 방법은 무엇입니까? 그리고 self.parentViewController를 사용하는 것이 작동하지 않습니다. 다른 아이디어? – RyanJM
매우 늦게 회신을 드려서 죄송 합니다만, 결국에는 도움이되기를 바랍니다. 어쨌든 정확한 답변으로 표시해 주셔서 감사합니다. 이 특정 동작을 추상화하는 여러 가지 방법이 있지만 반대하는 것이 좋습니다. 선호되는 방법은 직접적인 참조가 있기 때문에 위임입니다. 두 번째로 선호되는 방법은 리스폰 더 체인을 이용하는 것입니다. 뷰의 뷰 컨트롤러는 다음 응답자입니다. [UIApp sendAction : @selector (myEvent :) to : nil from : self forEvent : [UIEvent new]]를 참조하십시오. 체인에서 myEvent :를 수신하는보기 컨트롤러가 응답 할 수 있습니다. docs : http://bit.ly/10bBa4W를 참조하십시오. – gauravk92