当有人点击它时,我想更改UILabel
的值。
我要将其更改为的值在ViewController
本身中定义。
现在,我正在使用此代码:
- (void)tapOnBalance {
TimelineViewController *timelineVC = [[TimelineViewController alloc]init];
if(timelineVC.oldBalance && timelineVC.newBalance){
NSTimeInterval duration = 0.5f;
[UIView transitionWithView:self.amountLabel
duration:duration
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{
self.amountLabel.text = timelineVC.newBalance;
} completion:^(BOOL finished){
[UIView animateWithDuration:duration delay:duration options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
self.amountLabel.text = timelineVC.oldBalance;
} completion:^(BOOL finished){
NSLog(@"finished");
}];
}];
}
}
但是,因为我可能正在初始化TimelineViewController
作为新的insance,所有初始值都是nil,因此if/else
语句中的代码块永远不会运行。
如何在不创建TimelineViewController
的新实例的情况下访问这些公共值?
答案 0 :(得分:0)
您是对的,每次调用TimelineViewController
时都会创建tapOnBalance
的新实例。
我不确定您的体系结构是什么样的,但我想到的解决方案是为实现TimelineViewController
的视图控制器中的tapOnBalance
创建一个属性:
@property (nonatomic, strong) TimelineViewController *timelineVC;
文件标题或私人界面中的。
然后在viewDidLoad
内初始化该内容,并使用self.timelineVC
访问它。