2012-09-05 1 views
2

좋은 샘플 코드 UAModalPanel을 다운로드했습니다. 내 프로젝트에서 구현했습니다. 세그먼트 컨트롤의 첫 번째 인덱스를 탭하면 UAModalPanel이 열립니다. 나는 이것을 성공적으로 구현할 수 있었다.UAModalPanel을 수동으로 닫는 방법

하지만 세그먼트 컨트롤에서 두 번째 또는 세 번째 인덱스를 선택하면 UAModalPanel을 닫아야합니다. 어떻게해야합니까? 아무도 가이드를 안다면?

enter image description here 우리는 아래

-(void)navBarSegmentCntrl_tapped 
{ 
if(navBarSegmentCntrl.selectedSegmentIndex==0) 
{ 

    UAExampleModalPanel *modalPanel = [[UAExampleModalPanel alloc] initWithFrame:self.view.bounds title:@"dfg" ]; 



    [self.view addSubview:modalPanel]; 

    // Show the panel from the center of the screen 
    [modalPanel showFromPoint:self.view.center]; 



} 
else if(navBarSegmentCntrl.selectedSegmentIndex==1) 
{ 
    [UAmodal hide]; //UAmodal allocated in view didload// 
    imagePickerController = [[UIImagePickerController alloc] init]; 
    imagePickerController.delegate = self; 
    imagePickerController.sourceType = 
    UIImagePickerControllerSourceTypePhotoLibrary; 

    [self presentModalViewController:imagePickerController animated:YES]; 
} 

호출 될 세그먼트 제어}

답변

1

문제는 당신이 show를 호출하는 객체가 당신의 hide를 호출하는 것과 동일되지 않는 것입니다을 탭하면 . 당신은 당신의 인터페이스 파일에 선언해야합니다

@interface MyViewController : UIViewController 
{ 
    UAModalPanel *myModalPanel; 
} 

을 그리고 당신은 navBarSegmentCntrl_tapped 방법을 보여줄 때 다음, 당신은 init이이 myModalPanel (당신이 이미 그것을 설정 후에는, 다시 UAModalPanel *myModalPanel 할 필요가 없습니다 기억, 보기 컨트롤러가 "이미 객체를 알고 있습니다."라고 말하면 단지 myModalPanel = [[UAModalPanel alloc] init....입니다.)

그런 다음이를 숨기려면 [myModalPanel hide];으로 전화하십시오.

+0

답장을 보내 주셔서 감사합니다.이 방법을 시도했지만 작동하지 않습니다. 호출 된 메서드를 숨기지 만 ModalPanel은 숨어 있지 않습니다. 대리인을 설정해야합니까? – thavasidurai

+0

아니요 위임과 관련이 없습니다. 코드를 게시 할 수 있습니까? –

+0

편집 됨 체크 아웃 –