收到推送通知後頁面跳轉,當程序在後臺,無論進入後臺之前在哪個界面,點擊收到的推送,跳轉到指定界面的2個思路:

發個廣告:ios開發兩年了,一步步走來  關注公衆號一起進步
發現一篇文章 正好解決自己的問題,在此記錄一下
  1. 方法一:  
  2.   
  3. -(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{  
  4.     if( ){  
  5.         PushViewController *push = [PushViewController alloc] init];  
  6.        [self.window.rootViewController presentViewController:push animated:YES completion:nil];  
  7.     }  
  8.   
  9. }  
  10.   
  11. 方法二:(個人感覺這個可靠些)  
  12. 做一個基類:基類的viewwillappear裏做操作,其它頁面繼承這個類  
  13. 基本上想怎麼跳就怎麼跳:  
  14.   
  15. //-----------------------------------1  
  16.   
  17. @interface BasicViewController : UIViewController  
  18. @end  
  19. ....  
  20.   
  21. .m裏  
  22. - (void)viewWillAppear:(BOOL)animated  
  23. {  
  24.     [super viewWillAppear:animated];  
  25.     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(gotoMessageView:) name:@"gotoMessageView"object:nil];  
  26. }  
  27. -(void)viewWillDisappear:(BOOL)animated  
  28. {  
  29.     [super viewWillDisappear:animated];  
  30.     [[NSNotificationCenter defaultCenter] removeObserver:self name:@"gotoMessageView" object:nil];  
  31. }  
  32. // 這裏區分消息  進行頁面跳轉  
  33. - (void) gotoMessageView:(NSNotification*) notification  
  34. {  
  35.    //.....  
  36. }  
  37. //----------------2  
  38. 其他viewcontroller:  
  39. @interface AViewController : BasicViewController  
  40. .....  
  41. -(void)viewWillDisappear:(BOOL)animated  
  42. {  
  43.     [super viewWillDisappear:animated];  
  44. }  
  45. //----------3  
  46. -(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo  
  47. {  
  48. ......  
  49.   
  50.  [[NSNotificationCenter defaultCenter] postNotificationName:@"gotoMessageView" object:nil];  
  51. }  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章