我必须从第一个控制器的菜单项点击来查看控制器,segue由'Present Modally'Segue执行,它将打开第二个viewController(充当菜单)当我按下第二个VC上的刷新按钮时,它从第一个VC调用该方法刷新其数据并将其加载到tableView上。问题在于它是从第二个VC调用方法到第一个VC,但是在这一行上返回nil。通过模态执行Segue后发现“发现零”异常
self.tableView.dataSource = self
我认为这是因为第一个VC不活跃正确,因为它是在后台(第二VC的背景是透明的,这样我可以看到在后面的第一个VC)。我是新来的迅速,我不知道如何处理它。
编辑:这是刷新方法
func refresh() {
// self.dismiss(animated: true, completion: nil)
// present(DayView_Controller, animated: true, completion: nil)
// self.dismiss(animated: true, completion: nil) // it is dismissing the first view controller instead of second
////////
Extensions.ShowAlert(self.pwait, sender: self) // here it causing the exception on viewDidLoad
let defaults = UserDefaults.standard
let date = Date()
let formatter = DateFormatter()
formatter.dateFormat = "MM/d/yyyy"
let finaldate = formatter.string(from:date)
if Reachability.isConnectedToNetwork(){
// all the services are being call and getting reloaded on tableview
}
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.dataSource = self // exception here
}
第二EIDT:现在我解雇的刷新点击第二个VC和VC 1日呼吁完成的方法,仍然得到同样的错误。
@IBAction func Refresh_CLick(_ sender: Any) {
self.dismiss(animated: true, completion: {
DayView_Controller().refresh()
})
// DayView_Controller().refresh()
}
我们能看到一点点更多的代码。也许赛格会有帮助。也许是调用self.tableView.dataSource的整个刷新方法。 –
一旦移动到另一个视图控制器,第一个视图控制器将被释放并且零。您无法从第二个VC中刷新第一个VC的数据。而不是你可以将数据从第二个VC传递到第一个VC。 –
@RyanPoolos我已经通过故事板执行了segue。 –