2011-10-29 10 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]; 
} 

を使用しようとした私は、このフルスクリーン画像と、そこに捕まってしまったとi「はでき

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

このtouchesBeganを使用して戻って考えていました戻りません。 viewcontrollerを却下するにはどうしたらいいですか?

+0

いくつかのアイデアは何ですか?あなたは問題が何であるか教えてくれませんでした。たぶんtouchesBeganは呼ばれませんでしたか?ベストプラクティスをお探しですか? – LearnCocos2D

+0

まあ...何も動かない。つまり、私はこのフルスクリーンイメージにぶつかってしまって、私は元に戻れません。私は私の質問を編集します、申し訳ありません。 – Oiproks

答えて

3

ナビゲーションバーを使用している場合は、このビューコントローラを起動するためにpushViewControllerを実行したと仮定していますか?この場合、コントローラを閉じるには、

[self.navigationController popViewControllerAnimated:YES]; 

とすることをお勧めします。

+0

右私はそれを見ることができませんでした。どうもありがとう。もう一つのこと:statusBarとNavigationBarを隠してしまったので、このビューをポップすると、古いビューにも隠されています。この問題を解決するための唯一の方法である 'viewDidAppear'にそれらを戻しているのですか? – Oiproks

+0

私は実際にはviewWillAppearで行うことをお勧めしますが、はい、Nav Barの可視性を復元するために私が知っている唯一の方法です。 –

0

もちろん、あなたのソリューションは画像ビューが実際にはどこかのpresentModalViewController:animated:で表されるモーダルビューコントローラであることを前提としています。

私の提案では、UIButtonをイメージビューの上に配置し、同じサイズにすることをお勧めします。内部をタッチアップしてゴーバックメソッドに接続し、アルファを0に設定するか、IBまたはプロパティで非表示にします。ボタンは表示されませんが、それでもタッチイベントを受信します。

+0

ボタンを試しましたが、機能しませんでした。私はAlan Moore Solutionで解決しました。あなたのソリューションはスマートでした!私はどこか別の場所で使うつもりだと思う。どうもありがとう。 – Oiproks

+0

...今私は不思議です - どうしてあなたは1つを提示していない場合モーダルビューコントローラを却下しようとしましたか? – FeifanZ

+0

私はpresentModalViewController:animatedを使用すると誤った考えをしていました!私は今朝から働いています。今はほぼA.Mです。ここ...私は寝るべきだ。 – Oiproks

0

親ビューコントローラでdismissModalViewControllerAnimated:を呼び出す必要があります。非表示にする必要はありません。

また、UIImageViewのuserInteractionEnabledプロパティは、通常のUIViewとは異なり、デフォルトでタッチイベントに応答しないため、yesに設定してください。

+0

UIImageViewでuserInteractionを有効にするのを忘れましたが、それは主な問題ではありませんでした。とにかくありがとう。 – Oiproks

関連する問題