您可以通过在 Objective-C 中使用委托来实现这一点。
在您的SecondView.h 中,在标题包含之后添加以下内容
@protocol YourDelegateName <NSObject>
-(void)setText:(NSString *)strData;
@end
还将委托属性添加到您的标题中,以便在调用类中访问它们,如下所示(这与 SecondView.h 文件中的其他属性声明一起使用):
@property (nonatomic, weak) id<YourDelegateName> delegate;
现在,调用委托部分。假设你想将SeconView的UITextView的文本值保存在FirstView类的strTextViewData中,当发生以下事件时:
- (IBAction)save:(id)sender
{
[self.delegate setText:self.txtView.text]; // Assuming txtView is name for UITextView object
}
现在,在FirstView.h 中添加YourDelegateName 到如下委托列表中:
@interface FisrtView : ViewController <YourDelegateName>
@property (nonatomic, reatin) NSString *strTextViewData;
@end
然后在FisrtView.m 文件中创建SecondView 类的实例时,将委托设置为self,如下所示:
SecondView *obj = [[SecondView alloc] initWithNibName:@"SeconView" bundle:nil];
obj.delegate = self; // THIS IS THE IMPORTANT PART. DON'T MISS THIS.
现在,实现委托方法:
-(void)setText:(NSString *)strData
{
self.strTextViewData = strData;
}
将它应用到您的代码中会做您想做的事。此外,委派是 Objective-C 语言最重要的特性之一,通过这样做,您将开始学习。
如果您对此实现有任何问题,请告诉我。