• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

在另视图控制器更改标签的文本

用户头像
it1352
帮助1

问题说明

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

正确答案

#1

你可以使用委托模式

首先创建您的委托协议

@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;

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /reply/detail/tanhcfijeb
系列文章
更多 icon
同类精品
更多 icon
继续加载