2011-05-03 79 views
1

由於某些原因,此代碼不在viewDidLoad中工作,但將在viewWillAppear中工作。有任何想法嗎?NSNotificationCenter in viewDidLoad:無法正常工作

[[NSNotificationCenter defaultCenter] 
      addObserver:self 
       selector:@selector(wakeUp:) 
        name:UIApplicationWillEnterForegroundNotification 
       object:nil]; 

謝謝

+2

因此,你有沒有把應用程序置於後臺,一旦應用程序運行後按下主頁按鈕,並通過點擊它的圖標將它帶回前臺?你有一個方法' - (void)wakeUp:(NSNotification *)notification'?因爲它應該工作得很好。 – DarkDust 2011-05-03 07:00:15

+0

是的,我嘗試了所有這一切。並添加燃料的火,我把完全相同的代碼在viewWillAppear和它的作品。跆拳道? – Rob 2011-05-03 07:12:10

+0

你已經說過'viewWillAppear:';你的意思是'viewDidAppear:'這次?你將不得不描述一些症狀。必須有其他事情要麼導致這似乎無法正常工作,要麼導致其他呼叫似乎工作。你是否確信當你移動這些代碼時,只有一個這個通知註冊正在進行? – 2011-05-03 07:18:27

回答

2

你絕對肯定viewDidLoad被調用?

+0

上,建立了一個nslog和所有的東西 – Rob 2011-05-03 07:09:25

+4

是你的removeObserver:意外運行? – nielsbot 2011-05-03 08:02:10

+0

哈哈哇,這是一個愚蠢的錯誤。謝謝!現在我要去確保我總是刪除名稱爲 – Rob 2011-05-03 09:27:31

0

對我而言,我把removeObserver方法放在didReceiveMemoryWarning方法裏面,如果我拍一張照片或做別的事情,這個方法會出乎我的意料。所以,現在我總是在dealloc階段刪除通知觀察者。