我有一个视图控制器,假设它的名称是FooViewController
,并且它有一个属性:
@property (nonatomic, strong) NSAttributedString *foo;
我希望在视图出现时更新用户界面,因此viewDidLoad
和foo
的setter
应该像这样:
- (void)viewDidLoad
{
[super viewDidLoad];
self.foo = [[NSAttributedString alloc] initWithString:@"test" attributes:@{ NSForegroundColorAttributeName : [UIColor greenColor]} ];
}
- (void)setFoo:(NSAttributedString *)foo
{
_foo = foo;
if (self.view.window) [self updateUI];
}
我本来期望当视图在屏幕上时,
updateUI
方法会被调用,但实际上并没有。只有当我删除if (self.view.window)
后,该方法才被调用。这里有什么问题吗?谢谢。