Это я написал в viewDidLoad.
if DBSession.shared().isLinked() {
print("already linked")
initDropboxRestClient()
}
else
{
print("connecting2")
DBSession.shared().link(from: self)
initDropboxRestClient()
}
а функция initDropboxRestClient() написана ниже.
func initDropboxRestClient() {
dbRestClient = DBRestClient(session: DBSession.shared())
dbRestClient.delegate = self
dbRestClient.loadMetadata("/")
}
Проблема в том, что у меня есть два контроллера представления для отображения имен файлов Dropbox, первый контроллер представления вызывает методы делегата и отлично отображает имена файлов и папок. Но второй нет.
Во втором контроллере представления я заметил, что если я прокручиваю свое табличное представление во втором контроллере представления вверх и вниз, то методы делегата вызываются немедленно, и как только он связан в следующий раз, методы вызываются немедленно.
Итак, впервые методы делегата не вызываются в моем втором контроллере представления Dropbox, вот моя проблема. Заранее спасибо.
Методы делегата restClient следующие.
func restClient(_ client: DBRestClient!, loadedMetadata metadata: DBMetadata!) {
for file in metadata.contents
{
dbMetadataArray.append(file as! DBMetadata)
fileNamesArray.append((file as AnyObject).filename)
}
tableView.reloadData()
self.myActivityIndicator.stopAnimating()
self.myActivityIndicator.hidesWhenStopped = true
}
func restClient(_ client: DBRestClient!, loadMetadataFailedWithError error: Error!) {
print("in loadMetadataFailedWithError method in dropbox email view controller")
print("Error dscription = %@",[error.localizedDescription])
let alert = UIAlertController(title: "Go Back.", message: "Try Once Again", preferredStyle: UIAlertControllerStyle.alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil))
self.myActivityIndicator.stopAnimating()
self.myActivityIndicator.hidesWhenStopped = true
tableView.reloadData()
}