iOS 标签未更新
iOS Label Not Updating
所以我有一个 UITabBarController,它下面有 4 个视图。
其中一个 ViewController(称为 optionsViewController)具有用于消息的 IBOutlet LABEL。我将其用作我可以更新的屏幕上的一种调试消息。
TabBarController 调用名为 UpdateDeviceStatus 的 optionsViewController 函数
当应用程序启动时,STATUS 标签在 viewDidLoad 函数中设置为“BLAH”。
但是当TabBarController调用UpdateDeviceStatus时,标签没有更新。
@synthesize device_firmware_version, device_status;
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.device_status.text = @"BLAH";
}
- (void) UpdateDeviceStatus:(NSString *)status
{
NSLog(@"Updating Status: %@", status);
self.device_status.text = status;
}
Label在Storyboard中连接,头文件中连接为(nonatomic, retain)
@property (nonatomic, retain) IBOutlet UILabel *device_status;
如果我们查看 LOG 文件,变量 status
是正确的。但是屏幕上的标签不会更新。我设置了断点,它只进入 viewDidLoad 一次,它进入 UpdateDeviceStatus 一次。
我遗漏了一些明显的东西,Whosebug....请帮忙。
你实现了 UITabBarControllerDelegate 委托了吗?
并检查您的 class 是否确认 TabBarController 委托
此代码可以帮助您
extension <#UIViewController#> : UITabBarControllerDelegate {
override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
}
}
我猜“self.device_status”是零。
在此行设置断点。
self.device_status.text = status;
并检查 self.device_status 是否为零。您可以在Xcode的控制台区域输入“po self.device_status”并按“Enter”。
最可能的原因是在加载 optionsViewController 之前调用了 UpdateDeviceStatus。
所以我有一个 UITabBarController,它下面有 4 个视图。
其中一个 ViewController(称为 optionsViewController)具有用于消息的 IBOutlet LABEL。我将其用作我可以更新的屏幕上的一种调试消息。
TabBarController 调用名为 UpdateDeviceStatus 的 optionsViewController 函数
当应用程序启动时,STATUS 标签在 viewDidLoad 函数中设置为“BLAH”。
但是当TabBarController调用UpdateDeviceStatus时,标签没有更新。
@synthesize device_firmware_version, device_status;
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.device_status.text = @"BLAH";
}
- (void) UpdateDeviceStatus:(NSString *)status
{
NSLog(@"Updating Status: %@", status);
self.device_status.text = status;
}
Label在Storyboard中连接,头文件中连接为(nonatomic, retain)
@property (nonatomic, retain) IBOutlet UILabel *device_status;
如果我们查看 LOG 文件,变量 status
是正确的。但是屏幕上的标签不会更新。我设置了断点,它只进入 viewDidLoad 一次,它进入 UpdateDeviceStatus 一次。
我遗漏了一些明显的东西,Whosebug....请帮忙。
你实现了 UITabBarControllerDelegate 委托了吗?
并检查您的 class 是否确认 TabBarController 委托
此代码可以帮助您
extension <#UIViewController#> : UITabBarControllerDelegate {
override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
}
}
我猜“self.device_status”是零。
在此行设置断点。
self.device_status.text = status;
并检查 self.device_status 是否为零。您可以在Xcode的控制台区域输入“po self.device_status”并按“Enter”。
最可能的原因是在加载 optionsViewController 之前调用了 UpdateDeviceStatus。