2010-04-06 3 views
2

Objective C (코코아)에서 모달 시트로 실행중인 앱이 있지만 시트가 표시 되어도 앱이 종료되도록 허용하고 싶습니다 (모달에 대한 정의와 모순됩니다. 모달 시트의 애니메이션 효과처럼).모달 시트 중 닫기 버튼

나는 이미 -setPreventsApplicationTerminationWhenModal 메서드를 사용하고 있으며 정상적으로 작동하지만 ... 궁극적으로 ... 닫기 버튼을 활성화하는 방법이 있습니까? 작은 원은 일반적으로 왼쪽 위 모서리에있는 모든 창과 함께 제공되는 붉은 색의 닫기 버튼입니다 (최소화 및 최대화와 나란히)? 현재 시트가 실행 중일 때 완전히 비활성화되어 있으며 사용하도록 설정하는 방법이 있다면 정말 좋습니다.

감사합니다.

+0

부모 창에 모달 창이 첨부되어있는 한 부모 창은 활성 창이 아닐 수도 있습니다. 그래서 그냥 확인해보십시오. – boom

+0

@iSight : True ... 저는 코코아를 처음 접했습니다. 당신이 "체크 아웃"한다는 것은 무엇을 의미합니까? 일반적인 일상의 감각으로 그것을 확인하거나 그 뒤에 프로그래밍 방식의 의미가 있습니까? – Vervious

+0

@ Nano8Blazex 제 지식에 따르면, 모달 윈도우는 부모 윈도우에 연결되며, 모달 윈도우가 키 윈도우가되고 키 윈도우가 될 때까지 부모 윈도우는 결코 키 윈도우가 될 수 없으며 지금까지 필요한만큼 사용할 수 없습니다. 모달 윈도우를 위해 다른 윈도우를 호출한다. – boom

답변

0

대리모 메서드를 사용하여 모달 뷰를 닫습니다. 당신은 당신의 모달 뷰 컨트롤러의 대리자를 선언하고 그 위임 방법은 모달의 ViewController 인터페이스 파일에서 ModalViewController

을 일축 :

:

@protocol MyViewControllerDelegate 
-(void)dismissModal; 
@end 

가 그런 다음 모달의 ViewController의 클래스 속성으로 대리자를 선언 이제

@property (nonatomic, retain) id <MyViewControllerDelegate> delegate; 
, 모달의 ViewController에 대한 적절한 위임 구현으로 부모의 ViewController를 선언

@ 인터페이스의 MyParentViewController : UIViewController에 호출 (부모)의 다음

의 ViewController이 구현 파일의 대리자 메서드를 구현하는이 :

-(void)dismissModal 
{ 
    // Dismiss the Modal ViewController that we instantiated earlier 
    [self dismissModalViewControllerAnimated:YES]; 
} 

을해야한다고. 이 문제를 처리하는 방법은 대리자 메서드를 사용하는 것이고 대리자 메서드는 한 컨트롤러의 프로세스가 다른 컨트롤러의 메서드를 실행해야 할 때마다 사용하기가 매우 편리하므로 대리자를 사용하여 작업을 완료하는 데 익숙해 질 가치가 있습니다. in Obj C