Нажмите уведомление, чтобы просмотреть iPhone - PullRequest
1 голос
/ 12 июля 2011

У меня работает push-уведомление, но следующее, что я хочу сделать, - это открыть соответствующий вид при нажатии на уведомление.

В моем appDelegate.m in 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 {

    }
}

Однако в этой строке: [[self navigationController] pushViewController:Alerts animated:YES]; появляется предупреждение о том, что Метод '-navigationController' не найден (тип возвращаемого значения по умолчанию равен 'id') .

Как я могу исправить это предупреждение, и я прав, пытаясь выдвинуть соответствующее представление в didFinishLaunchingWithOptions?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 12 июля 2011

Вы должны добавить любой контроллер навигации в свое окно из метода appdelegate после установки свойства naviagationcontroller.

[self.window addSubview:navigationController.view];
[self.window makeKeyAndVisible];

Затем вы можете перемещать представление по своему усмотрению.

1 голос
/ 12 июля 2011

Ваш navigationController не может быть объявлен как @property, поэтому вы не можете использовать [self navigationController].Просто попробуйте self.navigationController или даже просто navigationController, если это имя в вашем .h.

Кроме того, пожалуйста, не сравнивайте строки с ==.Вы должны сделать if ([params isEqualToString:@"sc"]).Это сравнивает содержимое вместо адреса вашей строки.

...