使用委托方法时标签未更新
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];
}
我有两个 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];
}