我有推送通知工作,但接下来要做的就是在点击通知时打开相关视图。
在我appDelegate.m
的{{1}}中,我有以下内容:
didFinishLaunchingWithOptions
但是,在这一行:NSString *params=[[launchOptions objectForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"] objectForKey:@"alertType"];
if ([params length] > 0 ) {//app launch when VIEW button of push notification clicked
if (params == @"sc") {
Alerts *alerts = [[Alerts alloc] initWithNibName:@"Alerts" bundle:nil];
[[self navigationController] pushViewController:Alerts animated:YES];
[Alerts release];
} else {
}
}
,会出现一条警告,指出未找到方法'-navigationController'(返回类型默认为'id')。
如何纠正此警告,我是否正确尝试推送[[self navigationController] pushViewController:Alerts animated:YES];
中的相关观点?
感谢。
答案 0 :(得分:2)
在设置naviagationcontroller属性后,您必须从appdelegate方法向窗口添加任何导航控制器。
[self.window addSubview:navigationController.view];
[self.window makeKeyAndVisible];
然后,您可以根据需要推送视图。
答案 1 :(得分:1)
您的navigationController
可能未被声明为@property
,因此您无法使用[self navigationController]
。只需尝试self.navigationController
,或者只是navigationController
,如果这是.h
中的名称。
另外,请不要将字符串与==
进行比较。你必须if ([params isEqualToString:@"sc"])
。这比较了内容而不是字符串的地址。