在另一个视图控制器中更改标签的文本 [英] Changing label's text in another view controller

查看:63
本文介绍了在另一个视图控制器中更改标签的文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个名为 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;

这篇关于在另一个视图控制器中更改标签的文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆