关于消息推送处理,可以置于各个控制器类内部实现,另一个处理方式可以统一处理。
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
接收到系统通知的方法。点击推送消息,由推送消息进入App,由此方法接收。需要注意的是UIApplication是一个对象,是一个连续性变化的对象,App的状态不一样导致其中的UIApplicationState也会随之变化,如果使用的是一个瞬时状态,还是建议使用application.applicationState,使用时是一个瞬时值,而使用UIAppliction,可能会导致Method的连续调用问题。UIApplicationSate 是一个struct,有三种状态:UIApplictionStateInative(将要处于活跃状态)
UIApplicationSateActive,(正处于活跃状态)
UIApplictionStateBackground,(处于挂起后台状态)
处理消息的随意跳转问题时,可以根据这三个状态,动态判断当前的Controller,动态创建Controller,跳转需要的控制器