2015-06-19 70 views
2

時出現警告當我使用下面的代碼呈現UIActivityController時,會顯示它,但控制檯顯示「Warning: Attempt to present <UIActivityViewController: 0x7f8788e7aed0> on <MyApp.CustomTableViewController: 0x7f8788e3db60> which is already presenting (null)」。當呈現UIActivityViewController

@IBAction func shareImage(sender: AnyObject) { 
    let images: [UIImage] = [image.image!] 
    let activityViewController = UIActivityViewController(activityItems: images, applicationActivities: nil) 
    self.presentViewController(activityViewController, animated: true, completion: nil) 
} 

該func被UILongPressGestureRecognizer調用。請注意,我用故事板具有以下層次:

TabBarController>(關係)>NavigationController>(關係)>TableViewController>(顯示)>TableViewController>(顯示)>ViewController

演示發生在最後一個ViewController上。

我很確定它是關於層次結構,控制器當前呈現(以及可能如何)以及哪個控制器負責呈現UIActivityViewController

編輯

UILongPressGestureRecognizer觸摸事件被多次調用這是導致出現該警告

回答

7

很難從你的問題,只是說是有這個情況發生的那一刻出現了一些其他視圖控制器?例如和行動表或其他?

在任何情況下,試試這個:

if self.presentedViewController != nil { 
     self.dismissViewControllerAnimated(false, completion: { 
      [unowned self] in 
      self.presentViewController(activityViewController, animated: true, completion: nil) 
      }) 
    }else{ 
     self.presentViewController(activityViewController, animated: true, completion: nil) 
    } 
+2

都能跟得上沒有在那一刻呈現的任何其他視圖控制器。你的代碼完美地顯示了我的func被連續調用兩次。一旦接觸開始,一旦接觸結束。衛生署! – Fabian

相關問題