【发布时间】:2017-02-01 03:30:04
【问题描述】:
我的 appdelegate 中有一个函数,它在通知触发时被调用。当调用此函数时,我希望能够访问特定的 ViewController 并操作表格单元格,无论它是否是当前视图。 我能够使用 rootViewController 方法使其工作,但由于它不再设置为根视图,因此不再工作。
我目前正在使用此代码:
let stopOption = UIAlertAction(title: "OK", style: .default) {
(action:UIAlertAction)->Void in self.audioPlayer?.stop()
print("Stop index is \(index)")
Alarms.sharedInstance.setEnabled(false, AtIndex: index)
let sb = UIStoryboard(name: "Main", bundle: nil)
let mainVC = sb.instantiateViewController(withIdentifier: "MainVC")
dump(mainVC)
let cells = (mainVC as! MainAlarmViewController).tableView.visibleCells
dump(cells)
for cell in cells
{
if cell.tag == index{
print("Found the cell")
let sw = cell.accessoryView as! UISwitch
sw.setOn(false, animated: false)
}
}
}
第一个“转储”语句返回了正确的 ViewController,但它没有显示任何子视图,第二个转储语句返回“- 0 个元素”。
非常感谢任何帮助。
【问题讨论】:
-
您可以访问视图控制器。但是只有在加载主视图后才能访问子视图。
-
函数被调用时哪个控制器可见?
-
我应该补充一点,在此通知到达时 MainAlarmViewController 已加载,并且无论 MainAlarmViewController 当前是否可见,单元格都不会更新。
标签: ios swift view viewcontroller appdelegate