You need to observe when the view appears:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mySelector:) name:@"MyNotification" object:nil];
}
Then you can remove your observer when the view disappears:
- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
This way you don't leave observers that can't respond anyway since they aren't onscreen.