访问uitableviewcell子类中的公共变量

时间:2014-10-24 14:46:35

标签: ios objective-c

当有人点击它时,我想更改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的新实例的情况下访问这些公共值?

1 个答案:

答案 0 :(得分:0)

您是对的,每次调用TimelineViewController时都会创建tapOnBalance的新实例。

我不确定您的体系结构是什么样的,但我想到的解决方案是为实现TimelineViewController的视图控制器中的tapOnBalance创建一个属性:

@property (nonatomic, strong) TimelineViewController *timelineVC;
文件标题或私人界面中的

。 然后在viewDidLoad内初始化该内容,并使用self.timelineVC访问它。