gpt4 book ai didi

iphone - 收到推送通知时如何重新加载表格 View ?

转载 作者:可可西里 更新时间:2023-11-01 03:22:23 25 4
gpt4 key购买 nike

我有一个 iPhone 应用程序,我要在其中添加推送通知。

当我收到推送通知时,我需要转到一个特定的 View ,在调用 web service 之后我正在加载一个 TableView 。这里。问题是当我站在同一个观点时。如果我收到推送消息,我需要在前台和后台重新加载 tableview。但是当我这样做时,它无法正常工作。我如何实现这一目标?

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {

NSLog(@"########################################didReceiveRemoteNotification****************************###################### %@",userInfo);

// Check application in forground or background
if (application.applicationState == UIApplicationStateActive)
{
if (tabBarController.selectedIndex==0)
{
NSArray *mycontrollers = self.tabBarController.viewControllers;
NSLog(@"%@",mycontrollers);
[[mycontrollers objectAtIndex:0] viewWillAppear:YES];
mycontrollers = nil;
}

tabBarController.selectedIndex = 0;
//NSLog(@"FOreGround");
//////NSLog(@"and Showing %@",userInfo)
}
else {
tabBarController.selectedIndex = 0;
}
}

最佳答案

您可以尝试使用本地通知 NSNotificationCenter 在收到推送通知时重新加载您的表格。

收到推送通知后触发您的本地通知。在您的 View Controller 中,收听本地通知并执行任务。

例如:

在你的 didReceiveRemoteNotification 中:

[[NSNotificationCenter defaultCenter] postNotificationName:@"reloadTheTable" object:nil];

在您的 ViewController 中添加 Observer(在 viewDidLoad 中):

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadTable:) name:@"reloadTheTable" object:nil];

并实现以下方法:

- (void)reloadTable:(NSNotification *)notification
{
[yourTableView reloadData];
}

同时移除 viewDidUnloadviewWillDisappear 中的观察者。

关于iphone - 收到推送通知时如何重新加载表格 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11574154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com