- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的问题是我收到本地通知,然后告诉我的一位 VC 更新其 UITableView。但是,表格 View 不会重新加载。我知道所有 if 语句检查都已通过并且正在运行代码。这最初让我相信这是一个线程问题,因此我将重新加载包装在 dispatch_async(dispatch_get_main_queue(), {})
中。然而这也行不通。那么,如果这不是线程问题,那是什么?可能是什么原因造成的?我在这里做错了什么吗?
func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification) {
if notification.alertBody != nil{
if notification.alertBody!.hasSuffix("starting") || notification.alertBody!.hasSuffix("ending"){
dispatch_async(dispatch_get_main_queue(), {
if topMostContoller() is SecondViewController{
let vc = self.tabBarController?.getVC(.Attendance) as! SecondViewController
vc.myTableView?.reloadRowsAtIndexPaths((vc.myTableView?.indexPathsForVisibleRows)!, withRowAnimation: .None)
// vc.myTableView?.reloadData() <- this doesn't work either
}
})
}
}
}
编辑:
func getVC(vc:tabBarVC)->UIViewController?{
switch vc{
case .Home:
return fullTabBar[0]
case .Attendance:
return fullTabBar[1]
case .Location:
return fullTabBar[2]
case .Sign:
return fullTabBar[3]
case .Settings:
return fullTabBar[4]
}
}
其中 fullTabBar 在 tabBar 的 viewDidLoad 中设置。
fullTabBar = self.viewControllers 作为 [UIViewController]!
self
是 tabBar 实例。
最佳答案
不幸的是,我看不出您的代码有任何问题,从逻辑上讲它应该可以工作。可能您的数据源在调用 reloadData 后正在更新,尽管考虑到您的代码的简洁性,我怀疑情况确实如此。
我会尝试以下模式,只是为了看看您答案中的代码实际上是否有错误。
在SecondViewController的viewDidLoad中:
NSNotificationCenter.defaultCenter().addObserver(self, selector: "reloadTableView:", name: "reloadSecondVCTableView", object: nil)
在体内:
func reloadTableView(_: NSNotification) {
tableView.reloadData()
}
在您发布的代码中的第二个 if 语句之后发送通知:
NSNotificationCenter.defaultCenter().postNotificationName("reloadSecondVCTableView", object: nil)
关于swift - 无法从 didReceiveLocalNotification 重新加载 UITable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36629605/
我知道 didReceiveLocalNotification 会触发两次。首先它会在触发本地通知时触发,然后在用户选择它时触发。 有什么方法可以知道 didReceiveLocalNotificat
如果用户禁用了我的应用程序的通知,是否会调用“didreceivelocalnotification”方法?我需要一种在特定日期调用方法的方法。即使用户不想看到通知,也应该调用该方法。有没有比本地通知
我正在尝试将我的应用程序设置为在从本地通知打开时打开特定页面。我已经设置了 didReceiveLocalNotification 来打印通知信息。这已经工作了几天,但我今天才注意到,当我从 xcod
我厌倦了这样做。让我告诉你发生了什么事。我使用的是 iOS 9.0 和 Xcode 7.3.1。 情况一: 我已经像这样在 didFinishLaunchingWithOptions 中注册了本地通知
我是 iOS 和 Cocoa 编程的新手,今天我想构建一个小型 iOS 应用程序来测试本地通知。通知工作正常,一切都像我预期的那样工作。我唯一的问题是,方法 application:didReceiv
我正在使用 UILocalNotification 问题是当我使用 scheduleLocalNotification 发布我的通知时,它永远不会触发 didReceiveLocalNotificat
我正在使用以下方式处理本地通知: - (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotifi
问题: - (void) application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotificati
我的问题是我收到本地通知,然后告诉我的一位 VC 更新其 UITableView。但是,表格 View 不会重新加载。我知道所有 if 语句检查都已通过并且正在运行代码。这最初让我相信这是一个线程问题
最近我在尝试创建一个闹钟,当我使用UILocalNotification时,出现了问题。当应用程序在后台时,它会显示一个横幅,但是当应用程序处于事件状态时,即使我使用了didReceiveLocalN
我正在 iOS 7.1 中开发一个包含 UILocalNotification 的应用程序。当我的通知出现时,它会转到 AppDelegate didReceiveLocalNotification
在我的应用程序中,永远不会调用方法 - (void)application:(UIApplication *)application didReceiveLocalNotification: (UIL
当我创建本地通知回调时,didReceiveLocalNotification 被触发。当我点击本地通知时会触发相同的回调。目前我正在通过检查来划分这两种情况 if ([UIApplication s
我正在使用 Objective-c 创建一个 UILocalNotification在我的 iPhone 应用程序中。我的目标是 iOS 8 并使用 XCode 6。 我的问题涉及处理 UILocal
我正在安排本地通知。它适用于 iOS 9.x,但自 iOS 10 以来 -(void)application:(UIApplication *)application didReceiveLocalN
我已经设置了一个本地通知,它会在一定的时间间隔内触发,当我点击横幅时会调用“didReceiveLocalNotification”。现在当我从后台删除应用程序时,当我在横幅上点击时通知会再次出现,但
我正在尝试让 UILocalNotification 计划启动或让我的应用程序进入前台。我知道委托(delegate)函数有 didReceiveLocalNotification,但我想在 View
当我的应用程序进入后台时,系统会自动调用 applicationDidEnterBackground 并在该方法中触发本地通知。但是 didReceiveLocalNotification: 方法没有
所以这就是交易...我需要一种方法来区分我收到的应用程序状态 UILocalNotification . 有一种情况我不明白。也就是说,当应用程序当前在前台运行并且用户拉下通知中心(iOS 5)时,应
大家好! 当我的应用程序处于前台时,我希望它在触发 DidReceiveLocalNotification 时显示警报。 我可以在 AppDelegate.swift 中添加警报来模拟本地通知,但问题
我是一名优秀的程序员,十分优秀!