【问题标题】:Status bar animating while a new view controller is pushed onto the stack将新视图控制器推入堆栈时状态栏动画
【发布时间】:2013-04-29 14:19:59
【问题描述】:

我有两个由导航控制器推送的视图控制器。当第一个视图控制器处于活动状态时,会使用一个计时器来隐藏带有动画的状态栏(计时器通过调用[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade] 调用内部隐藏状态栏的方法)。 当用户点击视图时,第二个视图控制器被压入堆栈。第二个视图控制器需要状态栏可见才能正确显示导航栏。有时发生的情况是,当第二个视图控制器被推送时,状态栏仍在动画中,我最终得到了一个位于屏幕外的导航栏(基本上,第二个视图控制器的视图不显示导航酒吧)。我想知道是否有办法在推送之前停止状态栏动画,或者是否有解决此问题的标准方法。

【问题讨论】:

  • 你应该发布你用来动画状态栏的代码。

标签: ios


【解决方案1】:

您可以保留对计时器的引用:

myTimer *timer = [NSTimer scheduledTimer...];

然后当您希望状态栏动画发生时使其无效:

[myTimer invalidate];
myTimer = nil;

【讨论】:

  • 谢谢,我不认为是定时器的问题。事实上,我已经按照您在第一个视图控制器的 viewWillDisappear 中的建议进行了操作。问题是隐藏我正在使用的状态栏 - (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation 如果动画在第二个视图控制器位于堆栈顶部时尚未完成,我会看到我描述的问题。
猜你喜欢
  • 2011-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-23
  • 1970-01-01
  • 1970-01-01
  • 2016-12-11
相关资源
最近更新 更多