1

我第一次在 iOS 中使用本地通知,我想知道如何从不是默认 ViewController 的通知推送到特定视图。通过查看其他问题,我得到了代码

-(void) application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
   [self.window.rootViewController presentViewController:gameViewController animated:NO completion:nil];
}

gameViewController 是我要推送的 ViewController 的文件名(它不在导航控制器中)。我收到的错误是“使用未声明的标识符‘gameViewController’。我意识到这是因为它没有在 appDelegate 中声明,但我该怎么做?当我将它声明为属性时,代码编译了,但是当我按下时崩溃了在通知上。感谢您的帮助!

4

1 回答 1

0

您需要在 appdelegate.h 中声明类和属性,请参见下面的代码:

#import "gameViewController.h"
@class gameViewController;

 @interface XAppDelegate : UIResponder <UIApplicationDelegate >

@property (nonatomic, strong) gameViewController *gameVC;

然后在您的应用程序 delegate.m - 合成属性

  @synthesize gameVC;
    .....

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

 {       
...  
 gameVC= [[gameViewController alloc] initWithNibName:@"gameViewController" bundle:nil];
 ....
}


  -(void) application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{

 [self.window.rootViewController presentViewController:gameVC animated:NO completion:nil];

app.applicationIconBadgeNumber = notif.applicationIconBadgeNumber-1;



 } 

包括我自己在内的大多数人都使用 UIAlertviews 而不是模态视图来进行本地通知,但上面的代码应该也能正常工作(节省了创建单独 VC 的工作量)。

于 2014-03-31T02:50:55.830 回答