我是一个UIViewController,在它的init方法中,应该指定2个标签的文本。但是,这不会发生,文本永远不会改变。所有的连接都是正确的,但它们没有显示任何东西,我无法弄清楚原因。
以下是应该更改此特定ViewController的UILabel的代码。
-(id)initWithCoder:(NSCoder *)aDecoder{
if (self = [super initWithCoder:aDecoder]) {
_nameLabel.text = @"NAME";
_addressLabel.text = @"ADDRESS";
}
return self;
}
以下是“.h”文件:
@property (strong, nonatomic) Location *selectedLocation;
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
@property (weak, nonatomic) IBOutlet UILabel *addressLabel;
有什么想法吗?
答案 0 :(得分:1)
在initWithCoder:
中视图尚未加载,这意味着即使连接正确,您的网点仍然指向nil。
仅在第一次调用视图控制器的view
时才构建视图并连接插座。
请考虑在viewDidLoad
或viewWillAppear:
中执行此操作。
答案 1 :(得分:1)
我猜library(dplyr)
dt1 %>%
group_by(group, year) %>%
summarise(amt = sum(amt)) %>%
filter(sum(amt) > 100)
未被调用。
建议您在#Source: local data table [2 x 3]
#Groups: group
#
# year group amt
#1 2001 a 60
#2 2002 a 65
。
initWithCoder:
如果未解决,请检查视图状态,例如帧,隐藏或alpha值。
viewDidLoad
<强>更新:强>
这是因为函数- (void)viewDidLoad
{
[super viewDidLoad];
self.nameLabel.text = @"NAME";
self.addressLabel.text = @"ADDRESS";
}
中的IBOutlet为- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
NSLog(@"[nameLabel] frame : %@, hidden : %d, alpha : %@", NSStringFromRect(self.nameLabel.frame), self.nameLabel.hidden, self.nameLabel.alpha);
NSLog(@"[addressLabel] frame : %@, hidden : %d, alpha : %@", NSStringFromRect(self.addressLabel.frame), self.addressLabel.hidden, self.addressLabel.alpha);
}
。
答案 2 :(得分:0)
这更像是一种风格选择,但您可能想要综合您的属性。您可以使用init方法上方的@synthesize myProperty;
来实现此目的,现在您可以设置对象的属性,如下所示:myLabel.text = @"Hello";
根据您调用此视图控制器的方式,可能无法始终调用init。尝试将文本设置方法放在viewDidLoad
甚至viewWillAppear
中(您必须实现最后一个)