2017-04-02 57 views
2

我知道如何創建一個iOS共享擴展,但是我無法弄清楚是否有辦法讓全屏如Action擴展?全屏iOS分享擴展

Pinterest似乎這樣做,但我不知道如何。

一個行動擴展文檔說使用:

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

在爲擴展名的plist文件,但這似乎並沒有在共享擴展的效果?

有沒有辦法做到這一點?

回答

4

你可以從那裏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,但沒有顯示根目錄。 –