There is a quick and cheap way to do this. iOS9 this delegate method
- (void)didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
is called once when the dialogue is shown, and then a second time when the user taps on "Ok". Simply add a flag here.
Then, whenever you wish to display the custom "remind user how to enable push" message, simply check the flag and your current notification settings (as detailed by many of the answers above).
- (void)didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
self.pushDialogShown = YES;
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// not a great place to put this logic. For demonstration purposes ONLY
if (self.pushDialogueShown && ![self pushMessageEnabled]) {
[self showPushReminderMessage];
}
}