1

在 iOS 6 中,您可以使用 Unwinding Segue 返回到之前的视图控制器。

我现在正在使用故事板来解决这个问题。我在 iOS 5 上,我没有 Unwinding Segue。

图片说明情况: 在此处输入图像描述

在第三个窗口(我认为它的正式名称为故事)有一个完成按钮。

如何使该按钮在屏幕上返回一个带有文本的对象并返回到窗口 2?在那里,我的窗口 2 表应该 refries,但这超出了这个问题的范围。

我所做的是在 ThirdWindowViewController 中实现 IBOutlet(让我们称之为),它与 IBAction 方法相关联。

@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

正如汤姆所写,您需要一个代表。这就是我实际做到的方式,使用我上面提到的方法。我只是认为有一些更特定于苹果的方法可以做到这一点,比如 Segues。或一些替代品。

多谢你们。

4

3 回答 3

2

您想在“故事”视图控制器中为呈现视图控制器设置委托属性:

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];
}

故事.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 回答
2

我也不确定是否理解您的问题,但如果您想要完成按钮的操作返回只需写[self.navigationController popViewControllerAnimated:YES];

于 2012-10-23T13:13:00.013 回答
0

我不确定我是否理解得很好,但你可以从你的Done按钮绘制一个 segue 到第二个视图控制器并实现prepareForSegue:. 通过这种方式,您可以将任何信息从最后一个视图控制器发送到目标控制器。

于 2012-10-23T13:04:41.233 回答