在iOS 6中,您有Unwinding Segue返回上一个视图控制器。
我正在使用故事板,来计算那件事。而且我在iOS 5上,我没有放卷塞格。
图片解释了情况:
在第三个窗口(我认为它的官方称为故事)中有一个完成按钮。
如何使该按钮返回屏幕上带有文本的对象并返回到窗口2? 在那里,窗口2表格应该反驳,但这不属于这个问题的范围。
我所做的是在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。或者一些替代方案。
谢谢你们。
答案 0 :(得分:2)
我也不确定是否理解了您的问题,但如果您想要完成“完成”按钮的操作,请回写[self.navigationController popViewControllerAnimated:YES];
答案 1 :(得分: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
答案 2 :(得分:0)
我不确定我是否理解它,但您可以从Done
按钮到第二个视图控制器绘制一个segue并实现prepareForSegue:
。这样,您就可以将上一个视图控制器中的任何信息发送到目标控制器。