2012-10-23 45 views
1

在iOS 6中,您有Unwinding Segue返回到先前的视图控制器。iOS处理UIBarButtonItem的方式展开Segue

我现在正在与故事板一起工作,来确定这个事情。我在iOS 5上,我没有展开塞恩。

图片说明了情况: enter image description here

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

如何使该按钮返回屏幕上的文本对象并返回到窗口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。或一些替代品。

谢谢你们。

回答

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

Story.m

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

也请确保#import "NotesViewController.h"Story.h

+0

所以这是... –

0

我不知道我理解得很好,但你可以从你Done键画一个原因请看第二视图控制器和执行prepareForSegue:。通过这种方式,您可以将最后一个视图控制器的任何信息发送到目标控制器。

2

我也不敢肯定明白你的问题,但如果你想要做按钮的动作回去就写[self.navigationController popViewControllerAnimated:YES];