Цель C - вызов метода в контроллере представления, который уже находится в верхней части навигации из делегата приложения - PullRequest
0 голосов
/ 19 декабря 2018

Скажите, что я должен вызывать метод в View Controller (который показан пользователю вверху) из App Delegate после получения тихого push-уведомления.Так называемый метод в ответ должен показывать предупреждение, и после того, как клиент нажимает на кнопку просмотра предупреждения, контроллер представления должен быть отключен.

Моя проблема в том, что метод clickedButtonAtIndex не срабатывает после нажатия кнопки.В чем причина?

AppDelegate.m

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
    TestViewController *test = [[TestViewController alloc] init];
    [test showAlert];
}

TestViewController.h

@interface TestViewController : BaseViewController<UIAlertViewDelegate>

TestViewController.m

-(void)showAlert {

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Message" message:@"Show Message" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
    alert.tag = 100;
    [alert show];
}

1 Ответ

0 голосов
/ 19 декабря 2018

Вы должны получить доступ к существующему экземпляру контроллера верхнего вида, а не создавать новый экземпляр, как вы это делаете.Способ сделать это зависит от того, как определен интерфейс вашего приложения: например, если вы используете контроллер навигации, вам нужно получить доступ к верхнему элементу его массива viewControllers.

...