我從隱藏從我viewcontrollers模型的複雜性我的門面類調度通知。 現在,我有一個簡單的標籤欄控制器與第一個選項卡上的導航控制器。到目前爲止,這是一個非常典型的設計。 現在,此導航控制器在其堆棧中有兩個視圖控制器。 根MainViewController用的tableview和DetailViewController有一些看法。NSNotifications的發送表無故被清除。
的mainViewController是用於viewDidLoad中4個通知觀察者。 我對每個通知有四種處理方法。我在dealloc中註銷這些通知。
問題是,當我在mainViewController中選擇一個tableViewCell並將detailViewController推入棧中,然後當我回到主視圖控制器時按下後退按鈕,那時mainViewController作爲觀察者從Notifications Dispatch表格,實際上就像它將取消註冊這些通知一樣。
這是怎麼發生的?是由設計還是我錯過了什麼?
的mainViewController的情況下不被破壞,它仍然存在導航堆棧上的dealloc不叫,那麼爲什麼會註銷?
一個快速和骯髒的解決方案就是把登記的通知viewWillAppear中,但因爲這注冊碼不必要地運行,我不喜歡它很多次(viewDidLoad中應該足夠了。)
任何幫助嗎?
你怎麼確定這一點:「在那一刻的mainViewController被刪除從通知調度表的觀察者」? –
我用火花檢查器。 –