2016-11-08 11 views

答えて

3

Swift3 & Xcode8あなたがメインのApp

私は1つの上に達成するために作成する必要が延長
  • のための拡張機能を作成する必要があります上記のための

    (あなたは、3Dショートカットの項目を有効にした場合)?

    回答:今日拡張拡張を作成する方法

  • ?拡張を作成した後>今日拡張

、あなたが拡張するには、メインアプリケーションからのデータを渡したい場合、あなたはAppGroupsについて知る必要がある -

のXcode - >ファイル - >新規 - >ターゲット

AppGroupsは

どのように達成するために拡張するには、メインアプリケーション間でデータを共有することに他なりませんか?

だけのシンプルな

例について
Go to Xcode -> Capabilities -> AppGroups Enable -> Click + -> Add a New Container with format group.* 

group.com.yourCompany.ProjectName

ゴー主にアプリケーション

初期化Suiteとのデフォルト

var appGroupDefaults = UserDefaults.standard 
appGroupDefaults = UserDefaults(suiteName:"group.com.yourCompany.ProjectName")! 

Suiteとセットでのデフォルト値を初期化した後、あなたが拡張

appGroupDefaults.set(value: arrayDataToPasstoTodayExtension, forKey: "arrayDatatoDisplayInToday") 

を渡す必要があるものは何でもArrayDataまたは文字列データは、その後、後のウィジェットでよりオプションShowLessShowMoreの拡張子

で拡張

var appGroupDefaults = UserDefaults.standard 
actionGroupDefaults = UserDefaults(suiteName:"group.com.yourCompany.ProjectName")! 
let dataArray = appGroupDefaults.value(forKey: "arrayDatatoDisplayInToday")! as! NSMUtableArray 
Print("Hurray i got the data from Main App to Extension") 

にデータを取得します[今日]

override func viewDidLoad() { 
    self.preferredContentSize = CGSize(width: 320, height: CGFloat(yourArrayValuesCount.count)*90) 

    if #available(iOSApplicationExtension 10.0, *) { 
     self.extensionContext?.widgetLargestAvailableDisplayMode = .expanded 
    } else { 
     // Fallback on earlier versions 
    } 
} 
// For iOS 10 
@available(iOS 10.0, *) 
@available(iOSApplicationExtension 10.0, *) 
func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) { 
    self.preferredContentSize = (activeDisplayMode == .expanded) ? CGSize(width: 320, height: CGFloat(yourArrayValuesCount.count)*90) : CGSize(width: maxSize.width, height: 90) 
} 
0

はい、今日の拡張機能を使用してウィジェットを表示できます。 iOS 10から3Dショートカットアイテムを有効にすると、Todayの拡張機能(ウィジェット)が3Dショートカットアイテムの下に表示されます。ウィジェットは2か所で見ることができます。 1.ウィジェット画面 2. 3Dショートカット項目の下。

関連する問題