使用委托方法时标签未更新

label is not updating when using a delegate method

我有两个 viewController,我使用委托方法更新第一个视图控制器中的标签,并在第二个视图控制器中输入文本 viewcontroller。

我的问题是在文本字段 (secondViewController) 中输入的值没有被推送到 UILabel(FirstVIewController)

我的第一个ViewController.h

#import "SecondViewController.h"
@interface ViewController : UIViewController  <CustomDelegate>
@end

第一个ViewController.m

@interface ViewController () 

@property (weak, nonatomic) IBOutlet UILabel *infoLabel;

@end

@implementation ViewController

-(void)sendinfo:(NSString *)info
    {

_infoLabel.text = info;

    }

  -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
 {

   if ([[segue identifier] isEqualToString:@"info"])
      {
   SecondViewController *obj = segue.destinationViewController;

   obj.userDelegate = self;
      }

}

第二ViewController.h

@protocol CustomDelegate <NSObject>

-(void)sendinfo:(NSString *)info;

 @end

 @interface SecondViewController : UIViewController

 @property (weak, nonatomic) id <CustomDelegate> userDelegate;

 @property (weak, nonatomic) IBOutlet UITextField *textField;

第二ViewController.m

 - (IBAction)sendInfo:(id)sender {


     [self.userDelegate sendinfo:_textField.text];
   UIViewController * controller = [self.storyboard instantiateViewControllerWithIdentifier:@"Home"];

[self presentViewController:controller animated:YES completion:Nil];
 }

您正在 SecondViewController 中创建另一个 UIViewController,委托设置为您所在的 viewController。

要查看您的更改,您应该在 SecondViewController

中执行 [self dismissViewControllerAnimated:YES completion:nil];

示例:

- (IBAction)sendInfo:(id)sender {

  [self.userDelegate sendinfo:_textField.text];

  [self dismissViewControllerAnimated:YES completion:nil];
}