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 数组的顶部项目。
假设我必须在收到静默推送通知后从 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 数组的顶部项目。