gpt4 book ai didi

ios - UILabel 文本未更新

转载 作者:行者123 更新时间:2023-11-29 12:33:15 24 4
gpt4 key购买 nike

无论我尝试在初始化文件、viewDidLoad 还是 viewWillAppear 中设置文本,我的 .xib 文件中使用 IBOutlet 连接到我的 .m 文件的 UILabel 都不会更新。四天前我遇到了类似的问题(Can't assign text to UILabel or pass NSString property when modally loading a view controller),唯一有效的方法是删除 View Controller 及其 xib 并重新开始。我宁愿不必那样做,所以我发帖看看还有什么可以解决这个问题。这是代码:

@interface LoginViewController () <UITextFieldDelegate, UIGestureRecognizerDelegate>

@property (nonatomic, strong) NSURLSession *session;

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

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

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

@property (nonatomic) int loggedin;

@end

我尝试用我的 initWithNibName 更改标签:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];



if(self){

self.title=@"Followers & Following";

self.navigationController.navigationItem.title = @"Follow";



NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];

_session = [NSURLSession sessionWithConfiguration:config delegate:nil delegateQueue:nil];



self.restorationIdentifier = NSStringFromClass([self class]);

self.restorationClass = [self class];

[self view];

self.notificationLabel.text = @"Hello world"; ******************

[self.view setNeedsDisplay];

}

return self;

}

我也尝试在 viewDidLoad 中更改它:

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view from its nib.

self.navigationItem.title = @"Login";



UITapGestureRecognizer* tapBackground = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard:)];

[tapBackground setNumberOfTapsRequired:1];

[self.view addGestureRecognizer:tapBackground];



self.notificationLabel.text = @"Hello world"; ******************

[self.view setNeedsDisplay];

}

我在 viewWillAppear 中执行相同的操作(为简洁起见,我将其省略)。 IBOutlet 已连接,所以我看不出还有什么问题。如果我必须删除这些文件并重新开始,那将是非常烦人的,因为 - 还有什么我没有检查的错误?

谢谢。

最佳答案

Outlets 永远不会在你的 init 方法中设置,因为 XIB 文件/ Storyboard在那个时候没有加载。

它应该在 viewDidLoadviewWillAppear: 中工作。如果不是,则可能意味着您的 socket 链接已损坏。这是代码与 socket 一起工作的最常见原因,它似乎应该工作但没有。

关于ios - UILabel 文本未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27026791/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com