1

처음으로 iOS의 로컬 알림 작업을하고 있습니다. 시작시 기본 ViewController가 아닌 알림에서 특정보기로 푸시하는 방법을 궁금합니다. 다른 질문보고에서 나는UILocalNotification에서 View Controller를 표시 할 때의 문제

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

gameViewController 내가 (그것이 네비게이션 컨트롤러에없는) 밀어 할의 ViewController의 파일 이름입니다 코드가 있습니다. 내가받은 오류는 "선언되지 않은 식별자 'gameViewController'를 사용합니다. appDelegate에 선언되지 않았기 때문에 이것이 실현되었지만 어떻게해야합니까? 속성을 컴파일 할 때 선언했지만 누를 때 충돌이 발생했습니다. .! 알림에 도움을 주셔서 감사합니다

답변

0

아래 코드를 볼 수있는 클래스와 appdelegate.h의 속성을 선언해야합니다 : 앱 delegate.m에서 다음

#import "gameViewController.h" 
@class gameViewController; 

@interface XAppDelegate : UIResponder <UIApplicationDelegate > 

@property (nonatomic, strong) gameViewController *gameVC; 

이 - 재산을 합성하는을

@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; 



} 

나 자신을 포함한 대부분의 사람들은 UIA를 사용합니다. 로컬 알림에 대한 모달보기 대신 lertviews를 사용하지만 위의 코드는 잘 작동해야합니다 (별도 VC를 만드는 노력을 아끼지 않음).

+0

어디에서 gameVC에 대한 참조를 초기화합니까? 어딘가에 속성을 설정해야합니다. – Paulw11

+0

예, 옵션으로 didfinishlaunching에서 초기화해야합니다. 수정 해 드리겠습니다. – Paulo