问题描述
我有一个名为 FirstViewController 的视图控制器和一个名为 SecondViewController 的视图控制器.我用
I have one view controller named FirstViewController, and a second named SecondViewController. I present second view controller with
UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"mainController"];
[self presentViewController:controller animated:YES completion:nil];
在 SecondViewController 的 .m 中,我想更改 FirstViewController 中 UILabel 的文本.但是,标签的文本不会更新.我如何才能在 SecondViewController 中按下 UIButton 时更新 FirstViewController 的标签?
In SecondViewController's .m, I want to change the text of a UILabel in FirstViewController. However, the label's text isn't updating. How would I make it so that the FirstViewController's label is updated when a UIButton is pressed in SecondViewController?
推荐答案
你可以使用委托模式
首先创建您的委托协议
@class SecondViewController;
@protocol SecondViewControllerDelegate
-(void) updateLabelWithString:(NSString*)string
@end
@property (weak, nonatomic) id<SecondViewControllerDelegate>delegate;
在你的 IBAction
连接到你的 UIButton
In your IBAction
connected to your UIButton
[self.delegate updateLabelWithString:yourString];
在 FirstViewController.h 中
in FirstViewController.h
#import "SecondViewController.h"
@interface FirstViewController : UIViewController <SecondViewControllerDelegate>
在 FirstViewController.m 中
in FirstViewController.m
-(void) updateLabelWithString:(NSString*)string {
label.text = string;
}
然后在创建控制器实例时,将 FirstViewController 设置为 mainViewController 的委托
then when you create your controller instance, set FirstViewController as the delegate for your mainViewController
controller.delegate = self;
这篇关于在另一个视图控制器中更改标签的文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!