2017-04-02 12 views
2

iOS共有拡張を作成する方法はわかっていますが、Action拡張機能などのフルスクリーンを作成する方法があるかどうかはわかりません。フルスクリーンiOS共有拡張子

私はこれをやっているようですが、どうすればよいか分かりません。

アクション拡張機能のドキュメントを使用するように言う:

  <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をロードしますが、ルートは表示されません。 –

関連する問題