Objective C - 视图控制器中的调用方法已经位于应用程序委托的导航顶部

Objective C - Call method in a view controller which is already in top of navigation from app delegate

假设我必须在收到静默推送通知后从 App Delegate 调用 View Controller(在顶部向用户显示的那个)中的一个方法。 return 中所谓的方法必须显示警报,并且在客户单击警报视图按钮后,必须弹出视图控制器。

我的问题是 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];
}

您必须访问现有的顶视图控制器实例,而不是像您正在做的那样实例化一个新的实例。 执行此操作的方式取决于您的应用程序界面的定义方式:例如,如果您使用的是导航控制器,则必须访问其 viewControllers 数组的顶部项目。