2016-03-28 67 views
1

我的项目是整个故事板,我有一个UITableViewController嵌入在NavigationController和每个单元格我有一个按钮来分享通知。UINavigationBar隐藏时提供activityViewController

@IBAction func shareSheetButtonFeed(sender: AnyObject) { 
     let btnPos: CGPoint = sender.convertPoint(CGPointZero, toView: self.tableView) 
     let indexPath: NSIndexPath = self.tableView.indexPathForRowAtPoint(btnPos)! 
     passaValor = Int(indexPath.row) 
     let printtestess = (objects?[passaValor] as! PFObject) 

     let textToShare: AnyObject = (printtestess.objectForKey("subject")! as! String) + " - Cheque agora em:" 


     let myWebsite = NSURL(string:"http://www.mysite.com.br/") 
     let img: UIImage = UIImage(named: "myLogo-1024x1024")! 

     guard let url = myWebsite else { 
      print("nothing found") 
      return 
     } 
     self.navigationController?.setNavigationBarHidden(false, animated: true) 
     let shareItems:Array = [img, textToShare, url] 
     let activityViewController:UIActivityViewController = UIActivityViewController(activityItems: shareItems, applicationActivities: nil) 
     activityViewController.excludedActivityTypes = [UIActivityTypePrint, UIActivityTypePostToWeibo, UIActivityTypeCopyToPasteboard, UIActivityTypeAddToReadingList, UIActivityTypePostToVimeo] 
     self.presentViewController(activityViewController, animated: true, completion: nil) 
     } 

问题是,当我在点击该按钮的shareSheet提出后,我选择了社交网络,Twitter或Facebook等我以前的导航栏dissapear。

我试着用这条线,按钮内解决问题,当我在按钮再点击导航栏重新显示:

self.navigationController?.setNavigationBarHidden(false, animated: true) 

所以我试图把ViewWillAppear内这条线,但它不工作。

Obs:我正在使用自动布局

谢谢。

回答

1

请尝试等待,直到分享表关闭以显示导航栏。为此,请在UIActivityViewController上设置completionWithItemsHandler属性。

activityViewController.completionWithItemsHandler = { _ in 
    self.navigationController?.setNavigationBarHidden(false, animated: true) 
} 
+0

完美的解决方案,我只需要等待16小时奖励赏金。 –