【问题标题】:How can I tell when a screen is shown in iOS?如何判断 iOS 中何时显示屏幕?
【发布时间】:2012-03-17 01:13:52
【问题描述】:

我有一个简单的标签栏导航应用

-------------------
|                 |
|                 |
|                 |
|                 |
|                 |
|                 |
|                 |
|       (o)       |
|                 |
[ Tab 1 ]_[ Tab 2 ]

触摸 Tab 1 时,会显示屏幕 1。按下 Tab 2 时,将显示 Screen 2。

如何在每次显示屏幕时调用操作(不仅仅是在 viewDidLoad 事件上)。

我是否必须监听 Tab 栏上的触摸事件,或者 ViewController 中是否有我可以监听的事件?

【问题讨论】:

  • "当点击 Tab 1 时,显示屏幕 1。当按下 Tab 2 时,显示屏幕 2?"是的。
  • ViewController 中是否有我可以监听的事件? 当您查看documentation for UIViewController 时发现了什么?

标签: ios uiviewcontroller


【解决方案1】:

您可以使用viewWillAppearviewDidAppear

  1. viewWillAppear

    通知视图控制器其视图即将添加到视图层次结构中。

  2. viewDidAppear

    通知视图控制器其视图已添加到视图层次结构中。

【讨论】:

  • 我知道——你有正确的报价,但交换了。我只是把它们换回来:)
  • @Amorya - 我刚刚也和你同时交换了它们 :) 谢谢。
  • 啊,一切都很好,结局很好。顺便说一句,答案很好。
【解决方案2】:

viewDidLoad 在笔尖被加载到内存时被调用。当一个视图真正出现在屏幕上时,viewDidAppear 被调用。

[编辑]

这是回调的(自然)顺序: initWithNibName:Bundle: -> awakeFromNib -> loadView -> viewDidLoad -> viewWillAppear -> viewDidAppear

[编辑2]

这里有一个很好的解释:https://stackoverflow.com/a/5109277/347353

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多