You could un-register in viewWillDisappear and register in viewWillAppear? If you haven't experienced a problem using dealloc, this should probably be fine.