全屏iOS分享扩展

问题描述:

我知道如何创建一个iOS共享扩展,但是我无法弄清楚是否有办法让全屏如Action扩展?全屏iOS分享扩展

Pinterest似乎这样做,但我不知道如何。

一个行动扩展文档说使用:

  <key>NSExtensionActionWantsFullScreenPresentation</key> 
    <true/> 

在为扩展名的plist文件,但这似乎并没有在共享扩展的效果?

有没有办法做到这一点?

你可以从那里iOS Full Screen Share Extension获得灵感,你可以找到的代码片段更新的语法下面这与斯威夫特3斯威夫特4

EntryViewController

import UIKit 

@objc(EntryViewController) 

class EntryViewController : UINavigationController { 

    override init(rootViewController: UIViewController) { 
     super.init(rootViewController: ShareViewController()) 
    } 

    required init(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder)! 
    } 

    override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) { 
     super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) 
    } 

    override func viewWillAppear(_ animated: Bool) { 
     super.viewWillAppear(animated) 
     self.view.transform = CGAffineTransform(translationX: 0, y: self.view.frame.size.height) 
     UIView.animate(withDuration: 0.3, animations: {() -> Void in 
      self.view.transform = .identity 
     }) 
    } 

} 

兼容ShareViewController

import UIKit 
import Social 

class ShareViewController: SLComposeServiceViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     self.view.backgroundColor = UIColor.white 
     self.navigationItem.title = "Share" 

     self.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: Selector(("cancelButtonTapped:"))) 
     self.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .save, target: self, action: Selector(("saveButtonTapped:"))) 
    } 

    func saveButtonTapped(sender: UIBarButtonItem) { 
     self.hideExtensionWithCompletionHandler(completion: { (Bool) -> Void in 
     self.extensionContext!.completeRequest(returningItems: nil, completionHandler: nil) 
     }) 
    } 

    func cancelButtonTapped(sender: UIBarButtonItem) { 
     self.hideExtensionWithCompletionHandler(completion: { (Bool) -> Void in 
     self.extensionContext!.cancelRequest(withError: NSError()) 
     }) 
    } 

    func hideExtensionWithCompletionHandler(completion: @escaping (Bool) -> Void) { 
     UIView.animate(withDuration: 0.3, animations: { 
     self.navigationController!.view.transform = CGAffineTransform(translationX: 0, y: self.navigationController!.view.frame.size.height) 
     }, completion: completion) 
    } 

} 
+0

它不适合我。我加载UINavigationController,但没有显示根目录。 –