如何使用委托给 self 调用 presentViewController?

Posted

技术标签:

【中文标题】如何使用委托给 self 调用 presentViewController?【英文标题】:how to call presentViewController with a delegate to self? 【发布时间】:2014-03-14 23:03:07 【问题描述】:

从当前视图控制器中,我将视图控制器呈现为模型,以从用户那里获取大文本输入。我能够做到这一点,但我不知道如何将输入的文本传递回被调用的视图控制器。

有人可以看一下评论吗?

NotesController *vcNotes =  [self.storyboard instantiateViewControllerWithIdentifier:@"FullNotes"];
[self presentViewController:vcNotes animated:YES completion:nil];

【问题讨论】:

【参考方案1】:

您需要定义一个委托委托协议并将delegate 属性添加到NotesController

在协议中应该有这样的方法:

- (void)notesController:(NotesController*)nc didFinishWithText:(NSString*)text;

在你的NotesController:

@property (nonatomic, weak) id<NotesControllerDelegate> delegate;

现在,在展示之前,将委托设置为展示视图控制器:

NotesController *vcNotes =  [self.storyboard instantiateViewControllerWithIdentifier:@"FullNotes"];
vcNotes.delegate = self;
[self presentViewController:vcNotes animated:YES completion:nil];

现在,在您的笔记控制器中,当您准备好时,调用委托方法:

[self.delegate notesController:self didFinishWithText:self.text];

【讨论】:

以上是关于如何使用委托给 self 调用 presentViewController?的主要内容,如果未能解决你的问题,请参考以下文章

UITextView 类中未调用 UIAlertView 委托方法

从另一个类调用委托方法

如何将委托或函数指针从C#传递给C ++并使用InternalCall在那里调用它

UIPopoverController 委托未在解雇时被调用

如何在等待调用委托时让主线程进入睡眠状态?

未适配部分委托给包含在适配器中的对象(python设计模式)