我想在视图出现时只附加一次字符串。问题是,当我从上一个视图移回时,文本会被重复附加。因为我在viewWillAppear
中保留了字符串追加代码。
这是代码,
if (!sharedController.perimeterFencesFreeOfHazard) {
NSString *origText = _messageLabel.text;
count++;
_messageLabel.text = [origText stringByAppendingString:@"\n • Perimeter fences & signs"];
//count++;
}
如何确保字符串只被追加一次?
答案 0 :(得分:2)
所以你需要一个标志,告诉你是否为该视图添加了文本。
MyViewController.h:
@interface MyViewController : UIViewController {
BOOL _textAdded;
}
@end
MyViewController.m:
@implementation MyViewController
- (void)viewWillAppear {
if (!sharedController.perimeterFencesFreeOfHazard && !_textAdded) {
NSString *origText = _messageLabel.text;
count++;
_messageLabel.text = [origText stringByAppendingString:@"\n • Perimeter fences & signs"];
_textAdded = YES;
}
...
}
@end
事实上,看起来你正在使用count
实例变量走这条路,这也是一样好。
答案 1 :(得分:1)
将代码从viewWillAppear:
移至viewDidLoad:
。因为viewDidLoad:
方法在创建视图时只调用一次。