【问题标题】:Static View For Every View Controller in iOSiOS 中每个视图控制器的静态视图
【发布时间】:2013-06-17 06:07:40
【问题描述】:

我正在创建带有视图的视图控制器。该视图被命名为 timerView,它包含一个 timerLabel。 NSTimer 每秒钟更新一次标签。它工作正常。

但我想做的是,每当出现任何其他视图控制器时,timerView 都应该可用,并且它也应该定期使用 NSTimer 更新。

我有一个为每个视图控制器创建 timerView、timerLabel 和 NSTimer 的解决方案。然后我必须通过最后一次查看控制器计时器的值来更新它。但这是不可行的。

如何只创建一个视图并在每个控制器上使用它,并定期更新一秒。

任何建议将不胜感激。

【问题讨论】:

  • 为什么你不在 appdelegate 中创建这个并在everyView 中使用 appdelegate 的对象来使用这个视图..?
  • 这可能对你有帮助stackoverflow.com/q/10181013/1030951
  • @HarshIT 是的,感谢这个有用的链接
  • @NitinGohel 我还得管理时间我可以用一个计时器来做吗?
  • 我知道现在是件好事。但根据您的要求。将您的 TimerView 作为单例类。在 appDelegate 文件中创建一个 UIViewController 类别并覆盖方法 ViewDidLoad 并添加您的 timeView 的 thatViewController 视图的 sharedInstance。我想它会解决你的问题。

标签: iphone ios uiview uiviewcontroller


【解决方案1】:

我只想创建一个视图,并希望在每个控制器上使用它,并定期更新一秒。

为什么?与其使用单个计时器视图,不如创建任意数量的视图并使用单个计时器来驱动它们。可以在计时器视图消失时将其从一个视图中移除,然后将其添加到即将出现的另一个视图中,但我认为它不会真正为您带来任何有用的东西。

如果当前已用时间或剩余时间对整个应用程序很重要,则您应该拥有该信息的单一来源。也就是说,您应该有一个计时器,并使用它来驱动正在显示的任何计时器视图。一种简单的方法是让计时器的操作发布通知,并让任何可见的计时器视图监听该通知。这最大限度地减少了定时器和任何定时器视图之间的耦合——定时器不需要知道定时器视图,定时器视图也不需要直接访问定时器。

确保计时器视图在通知出现时开始侦听(以便它们开始更新)并在通知消失时停止侦听(因为如果它们不可见则不需要更新)。

【讨论】:

    【解决方案2】:

    您也可以添加视图控制器的视图,类似地添加视图。请访问以下网址。可能有用。

    iPhone how to add a view controller's view to another view controller's view?

    【讨论】:

      猜你喜欢
      • 2017-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-20
      • 2012-11-18
      • 2013-07-04
      • 1970-01-01
      相关资源
      最近更新 更多