1

iOS 6では、UnwindingSegueを使用して前のViewControllerに戻ることができます。

私は今、ストーリーボードを使ってそのことを理解しています。そして、私はiOS 5を使用していますが、UnwindingSegueはありません。

写真は状況を説明しています: ここに画像の説明を入力してください

3番目のウィンドウ(正式にはストーリーと呼ばれていると思います)には、[完了]ボタンがあります。

そのボタンで画面にテキストを含むオブジェクトを返し、ウィンドウ2に戻るにはどうすればよいですか?そこで、ウィンドウ2でテーブルを再試行する必要がありますが、これはこの質問の範囲外です。

私がしたことは、IBActionメソッドにリンクされているThirdWindowViewController(それをそれと呼びましょう)にIBOutletを実装することでした。

@property (nonatomic, strong) IBOutlet UITextView* textView;

@property (nonatomic, strong) Note* note;

@property (nonatomic, retain) IBOutlet UIBarButtonItem* doneButton;

- (void) configureView;
- (IBAction) doneAction:(id)sender;
- (BOOL) prepareNoteForTransition;

EDIT_01

トムが書いたように、あなたは代表者が必要です。それは私が実際にそれをした方法であり、私が上に置いた方法で。セグエのように、もっとアップル特有の方法があると思っただけです。またはいくつかの選択肢。

みんなありがとう。

4

3 に答える 3

2

また、それがあなたの質問を理解したかどうかはわかりませんが、[完了]ボタンのアクションを元に戻したい場合は、次のように記述してください。[self.navigationController popViewControllerAnimated:YES];

于 2012-10-23T13:13:00.013 に答える
2

提示するViewControllerの「story」ViewControllerにデリゲートプロパティを設定します。

NotesViewController.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"showStoryViewController"]) {
        [segue.destinationViewController setDelegate:self];
    }
}

- (void)storyViewControllerDidPressDoneWithText:(NSString *)text note:(Note *)note
{
    self.note = [NSString stringWithString:note];
    [self dismissViewControllerAnimated:YES completion:NULL];
}

Story.m

- (IBAction)doneAction:(id)sender
{
    [self.delegate storyViewControllerDidPressDoneWithNote:self.textView.text note:self.note];
}

また#import "NotesViewController.h"Story.h

于 2012-10-23T13:23:10.200 に答える
0

よく理解できているかどうかはわかりませんが、Doneボタンから2番目のView Controllerにセグエを描画して、を実装することができますprepareForSegue:。このようにして、最後のViewControllerから宛先のViewControllerに任意の情報を送信できます。

于 2012-10-23T13:04:41.233 に答える