2012-02-27 30 views
0

我有一個簡單標籤欄導航應用如何知道在iOS中顯示屏幕?

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

當標籤1被觸摸時,屏幕1被示出。當按下Tab 2時,顯示屏幕2。

如何在每次顯示屏幕時(不只是在viewDidLoad事件中)調用操作。

是否必須在選項卡欄上聽觸摸事件,或者在ViewController中是否存在可以偵聽的事件?

+2

也許是viewWill/DidAppear? – 2012-02-27 15:00:25

+1

「當觸摸表格1時,顯示屏幕1,按下表格2時,顯示屏幕2?」是的。 – Saphrosit 2012-02-27 15:06:47

+0

*在ViewController中是否有一個事件可以偵聽?*當您查看[UIViewController的文檔]時發現了什麼(https://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference /UIViewController_Class/Reference/Reference.html)? – Caleb 2012-02-27 15:17:30

回答

5

viewDidLoad當筆尖正在被加載時被調用到內存中。當一個視圖實際上出現在屏幕上時,viewDidAppear被調用。

[編輯]

這是回調的(天然)命令: initWithNibName:Bundle: -> awakeFromNib -> loadView -> viewDidLoad -> viewWillAppear -> viewDidAppear

[EDIT2]

在這裏看到了一個很好的解釋:https://stackoverflow.com/a/5109277/347353

2

您可以使用viewWillAppearviewDidAppear

  1. viewWillAppear

    通知視圖控制器,其觀點是要被添加到視圖層次結構。

  2. viewDidAppear

    通知其視圖添加到視圖層次視圖控制器。

+0

我知道 - 你有正確的引號,但交換了。我只是將它們換回:) – 2012-02-27 15:09:27

+0

@Amorya - 我只是在同一時刻將它們換成了你:)謝謝。 – sch 2012-02-27 15:11:37

+0

啊,一切都很好,結束了。很好的答案btw。 – 2012-02-27 15:12:40