2017-06-26 4 views
0

Ich benutze SVProgressHUD in einer iOS App und es funktioniert perfekt. Ich möchte es auch für die Freigabe dieser App verwenden, aber es zeigt keine App. Ich verwende eine benutzerdefinierte Ansicht für die Freigabeerweiterungsansicht und hier ist der Code, mit dem ich SVProgressHUD aufruft. Beachten Sie, dass der Upload-Fortschritt einwandfrei funktioniert. Was mache ich falsch? Danke.Verwendung von SVProgressHUD in Freigabeerweiterung

class ShareViewController: UIViewController { 
     ... 
     Alamofire.upload(multipartFormData: { multipartFormData in 
      multipartFormData.append(jpgImageData!, withName: "file",fileName: fname, mimeType: "image/jpg") 
      for (key, value) in parameters { 
       multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key) 
      } 
     }, 
         to:url!) 
     { (result) in 
      switch result { 
      case .success(let upload, _, _): 

       upload.uploadProgress(closure: { (progress) in 
        print("Upload Progress: \(progress.fractionCompleted)") 
        SVProgressHUD.setViewForExtension(self.view) 
        SVProgressHUD.showProgress(Float(progress.fractionCompleted)) 
       }) 
       upload.responseJSON { response in 
       if response.response?.statusCode == 200{ 
        if let result = response.result.value { 
         DispatchQueue.main.async(execute: { 

          let pre = NSLocale.preferredLanguages[0] 
          var message = "Message" 
          SVProgressHUD.showSuccess(withStatus: message) 
          SVProgressHUD.dismiss(withDelay: 2) 
          self.extensionContext?.completeRequest(returningItems: nil, completionHandler: nil) 
     })  

} 
+0

Sie das Ziel für SVProgressHud hinzufügen Haben? – Rajesh73

+0

Nein, habe ich nicht. Wie kann ich das machen? Danke. – radar

+0

Wenn Sie SVProgressHud manuell hinzugefügt hätten, dann wählen Sie SVprogressHud.m und kreuzen Sie das Ziel der Freigabeerweiterung auf der rechten Seite an, Utilities -> Target MemberShip – Rajesh73

Antwort

0

versuchen diese

class ShareViewController: UIViewController { 
... 
Alamofire.upload(multipartFormData: { multipartFormData in 
multipartFormData.append(jpgImageData!, withName: "file",fileName: fname, mimeType: "image/jpg") 
for (key, value) in parameters { 
multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key) 
} 
}, 
to:url!) 
{ (result) in 
switch result { 
case .success(let upload, _, _): 

upload.uploadProgress(closure: { (progress) in 
print("Upload Progress: \(progress.fractionCompleted)") 
DispatchQueue.main.async(execute: { 
SVProgressHUD.setViewForExtension(self.view) 
SVProgressHUD.showProgress(Float(progress.fractionCompleted)) 
}) 
}) 
... 
} 
+0

Danke für Ihre Antwort. Leider taucht es auch nicht auf. Ich habe vergessen zu erwähnen, dass ich bereits eine "DispatchQueue.main.async" weiter verwende, um SVProgressHUD zum Anzeigen einer Nachricht zu verwenden. Ich bearbeite den Code dafür. – radar

Verwandte Themen