2011-01-24 6 views
1

ナビゲーションスタック内からポップオーバーを解除するにはどうすればいいですか?私は、ポップオーバーのルートコントローラとしてナビゲーションコントローラを持っていて、2つのタイがスタックにあります。最初のテーブルビューが2番目のテーブルビューをプッシュし、2番目のテーブルビューがポップオーバーを閉じるはずです。これは間違っているようですが、私はテーブルからポップオーバーのテーブルへの参照を渡すことができます。異なるコントローラを操作した後にポップオーバーを解除する好ましい方法は何ですか?あなたがそのセットアップを持っていたらUIpopoverを解除する

[[NSNotificationCenter defaultCenter] addObserver:self 
selector:@selector(hidePopover)
name:@"hidePopover"
object:nil];

は、そのようappdelegate以内に新しいメソッドを追加します:

-(void)hidePopover{ 
    [UIPopoverController dismissPopoverAnimated:YES]; 
}

このアプローチはので、素晴らしいですあなたのappdelegateで

答えて

6

、新しいNSNotificationCenterオブザーバを追加今ではどこからでもポップオーバーを閉じることができるように設定されています。あなたはそうのようにこれを行う:

これはあなたの難問を解決し
[[NSNotificationCenter defaultCenter] postNotificationName:@"hidePopover" 
object:nil];

希望、

ゼイン

+0

しかしdismissPopoverメソッドがクラスメソッドではありません。だから私は、アプリケーションデリゲートのpopoverへの参照が必要でしょうか?モーダルビューコントローラのように機能しないのはなぜですか? –

+0

アップルのドキュメントを読んだら、ヘッダーのプロパティとしてPopoverコントローラへの参照を保持して、表示されるたびにビューを作成する必要がないと言います。 UIPopOverControllerをオブジェクトの名前に置き換えます。申し訳ありませんが、私はそれについてもっと明確にすべきでした。 –

+0

これはUIPopoverControllerクラスリファレンスにありますか? –