我試圖將myViewController訂閱到自定義的NSNotification。視圖層次結構看起來像這樣:在UIViewController中沒有收到NSNotification,它的視圖是UIScrollview的子視圖
window
- rootViewController.view
- scrollView
- myViewController.view
通知正在從RootViewController的的視圖內的按鈕發送到[NSNotificationCenter defaultCenter]。 rootViewController監聽通知並對其做出響應。
我在myViewController中有完全相同的「偵聽」代碼,但由於某種原因它沒有收到通知。如果它是應用程序的一部分,它應該收到通知,對嗎?我在myViewController的initWithNibName方法中有一個調試消息,所以我知道它正在訂閱通知。我甚至試圖通過將通知名稱設置爲零來讓myViewController偵聽所有通知。例如:
NSLog(@"main view controller initialized");
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarVisibilityChanged:) name:nil object:nil];
但是也沒有運氣。有沒有人看過類似的事情發生在NSNotifications之前?
任何想法?
謝謝!
將'name:'和'object:'設置爲nil通常會讓您選擇的接收全部*通知,這真的是您想要的嗎?另外,您確定註冊和發送是在同一個線程上完成的嗎? – DarkDust
爲什麼你把UIViewController放入你的scrollView而不是UIView? – Nyx0uf
你的對象上真的有一個'statusBarVisibilityChanged:'方法嗎?仔細檢查錯別字。 – DarkDust