2012-06-14 9 views
17

iOS 5 SDKを使用してアプリケーションを作成しています。私はStoryboardのSeguesを使ってビューをプッシュすることができましたが、現在のビューをポップして前のビューに戻る正しい方法を見つけることができません。iOS 5のSegues/Storyboardを使用して現在のビューをポップアップ

私はnavigationControllerを使用していません(アプリケーションには上部または下部のバーがありません)。

私はモーダルまたはプッシュセグを使用すると、新しいコントローラをインスタンス化するときの解決策にはなりません。

反対のアニメーションと最後のビューの削除でカスタムSegueを使用する必要がありますか?それとも良い方法がありますか?

答えて

24

コントローラをプッシュしているかモーダルで示しているかにかかわらず、オフにしたいコントローラから[self dismissViewControllerAnimated:YES completion:nil];に電話をかけることができます。ここで

関連資料です:UIViewController Class Reference

提示ビューコントローラは、それが提示ビューコントローラを却下する責任があります。表示されたビューコントローラ自体でこのメソッドを呼び出すと、メッセージは自動的にプレゼンテーションビューコントローラに転送されます。

+0

私が必要としていた正確に何か、ありがとう。 – Jukurrpa

+16

注:これはナビゲーションコントローラー(ポップする)では機能しません。 –

+0

);)あなたは私の日を作った:)。ありがとうございました – androniennn

53

iOS 5のストーリーボードは、「コードなし」の方法でセグを返すことはできません。これは自分で実装する必要があります。

「プッシュ」セグ(ナビゲーションコントローラが必要)を使用する場合は、ナビゲーションコントローラのpopViewControllerAnimated:メソッドを使用して最後のプッシュセグを元に戻します。 (または他の方法より多くを元に戻すには、UINavigationControllerマニュアルを参照してください。)

を使用seguesを「モーダル」場合には、(あなたがそのpresentingViewControllerプロパティから取得することができます)現在のビューコントローラを発表したビューコントローラにdismissViewControllerAnimated:completion:を呼び出します。


アップデート:iOSの6で以降ストーリーボードに "バック" に行くためのアンワインドseguesがあります。モーダル・ビュー・コントローラーからの「終了」と「キャンセル」の区別のようなことができる必要があるため、まだコードなしのソリューションではありません。しかし、ストーリーボードにあなたのアプリのセマンティックな流れの多くを置くことができます。 Appleにはtech note that describes them in detailがあり、それにはthe video from WWDC 2012 Session 407も含まれています。

16

プッシュされたクラスです。次のように接続すると、コントローラとビューがポップされます。

[self.navigationController popViewControllerAnimated:YES]; 
3

ストロボに「カスタム」タイプを作成します。これはボタンから行うことができます。 "popSegue"という名前の新しいUIStoryboardSegueクラスを作成します。 popSegue.mファイルに、次を追加します。

-(void)perform{ 
    UIViewController *sourceViewContreoller = [self sourceViewController]; 
    [sourceViewContreoller.navigationController popViewControllerAnimated:YES]; 
} 

-ストーリーボードエディタで。セグエ-Select

とセグエクラスを変更する "popSegue" 識別子に "popSegue"

完了-Set

プロジェクト全体で同じ「popSegue」クラスを使用できます。

ホープこれは私もXcodeの5を使用してい

2

を助け、ここではどのように行うのです。あなたはこの方法で実行したい任意のクリーンアップコードを追加することができます

- (IBAction)exitToHere:(UIStoryboardPopoverSegue *)segue sender:(id)sender; 

Then in the .m file add this: 

- (IBAction)exitToHere:(UIStoryboardPopoverSegue *)segue sender:(id)sender { 

} 

:まず、他のプッシュビューコードファイルで、このような.hファイルでIBActionメソッドを作成します。次に、ストーリーボードに移動し、押したビューを選択します。私は、ユーザーが彼が終了したことを知らせるためにタップするビューのいくつかの種類のボタンを持っていると仮定します。そのボタンをクリックし、キーを押したまま出口であるビューの下にある緑色のボックスにドラッグします。マウスボタンを離しますが、キーを押し続けます。ポップアップが表示され、メソッドがリストに表示されます。その方法を選択します。ユーザーがボタンをクリックすると、ビューがポップアップし、開始メソッドに戻ります。

関連する問題