2011-10-29 2 views
2

전 화면 UIImageView가있는 ViewController가 있습니다. 나는 statusBar와 NavigationBar를 숨겼으므로 돌아갈 방법은 없지만 어딘가에 두드리는 방법은 없습니다. '나는 또한touchesBegan을 사용하여보기를 닫습니다.

-(void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [[UIApplication sharedApplication] setStatusBarHidden:YES]; 
    [self.navigationController setNavigationBarHidden:YES]; 

    UITapGestureRecognizer *tapRecognizer; 
    tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissModalViewControllerAnimated:)]; 
    [imageFrame addGestureRecognizer:tapRecognizer]; 

    imageFrame.image = [UIImage imageWithContentsOfFile:image]; 

    [tapRecognizer release]; 
} 

는 내가 거기에 붙어있어이 방법을 사용하려고

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{  
    [self dismissModalViewControllerAnimated:YES]; 
} 

그래서 나는이 전체 화면 이미지, 그냥이 touchesBegan을 사용하여 다시 갈 생각을하고 있었고, 난 할 수 돌아 가라. viewcontroller를 닫으려면 어떻게해야합니까?

+0

몇 가지 아이디어가 무엇입니까? 문제가 무엇인지 알려주지 않았습니다. 어쩌면 만날 수 있을까요? 모범 사례를 찾고 있습니까? – LearnCocos2D

+0

음 ... 아무것도 작동하지 않습니다. 내 말은, 나는이 전체 화면 이미지를 부엉이에 붙잡 았고 돌아갈 수 없다는 것이다. 내 질문을 편집하겠습니다. 죄송합니다. – Oiproks

답변

3

탐색 막대를 사용하는 경우이보기 컨트롤러를 시작하기 위해 pushViewController를 수행했다고 가정합니다. 어떤 경우에 당신은 원 할거야

[self.navigationController popViewControllerAnimated:YES]; 

컨트롤러를 닫으십시오.

+0

오른쪽! 나는 그것을 볼 수 없었다. 고마워. 한 가지 더 : statusBar 및 NavigationBar가 숨겨져 있으므로이 뷰를 열면 이전 뷰에서도 숨겨집니다. 이 문제를 해결할 수있는 유일한 방법은'viewDidAppear'에 다시 설정하는 것입니까, 아니면 나에게 더 나은 것을 제안 할 수 있습니까? – Oiproks

+0

실제로 viewWillAppear에서 수행하는 것이 좋겠지 만 네비게이션 바 가시성을 복원하는 유일한 방법입니다. –

0

물론 솔루션은 이미지보기가 사실상 presentModalViewController:animated:으로 표시된 모달보기 컨트롤러라는 것을 전제로합니다.

제 제안은 UIButton을 이미지보기 위에 배치하고 크기를 동일하게 만드는 것입니다. Touch Up Inside를 Go-Back 방식으로 연결 한 다음 알파를 0으로 설정하거나 IB 또는 속성을 통해 숨 깁니다. 버튼은 표시되지 않지만 계속 터치 이벤트를 수신합니다.

+0

버튼을 시도했지만 작동하지 않았습니다. 나는 Alan Moore Solution으로 해결했다. 귀하의 솔루션은 똑똑했습니다! 나는 그것을 다른 곳에서 사용할 것이라고 생각한다. 고마워. – Oiproks

+0

... 이제 호기심 - 왜 모달 컨트롤러를 제시하지 않은 경우 모달 뷰 컨트롤러를 닫으려고합니까? – FeifanZ

+0

나는 presentModalViewController : animated를 사용하는 잘못된 생각을했습니다! 나는 오늘 아침 이후로 일하고 있는데, 지금은 거의 A. 여기 ... 나는 자러 가야 해. – Oiproks

0

부모보기 컨트롤러에서 dismissModalViewControllerAnimated :를 호출하고 숨기려는 컨트롤러가 아닌 dismissModalViewControllerAnimated :를 호출해야합니다.

일반 UIView와 달리 기본적으로 터치 이벤트에 응답하지 않으므로 UIImageView의 userInteractionEnabled 속성을 yes로 설정해야합니다.

+0

UIImageView에서 userInteraction을 사용하는 것을 잊었지만 주된 문제는 아니 었습니다. 어쨌든 고마워. – Oiproks