2014-07-26 7 views
6

Ich schreibe eine iOS 8 App Extension (Widget) für die Heute-Ansicht. Die Standardvorlage in xcode enthält ein Storyboard. Wie kann ich eine XIB-Datei anstelle eines Storyboards verwenden?iOS App Erweiterung mit Xib anstelle von Storyboard

Die documentation sagt, das ist möglich, aber ich kann nicht herausfinden, wie Sie die Datei info.plist ändern, um die xib geladen zu bekommen.

Antwort

12

Alles, was Sie tun müssen, ist "NSExtensionPrincipalClass" und den gewünschten Klassennamen hinzuzufügen.

7

Wie ich kürzlich den harten Weg entdeckt habe - beachten Sie, dass die 'NSExtensionPrincipalClass' direkt unter dem 'NSExtension' Schlüssel sein muss. zB Klasse ShareViewController:

<key>NSExtension</key> 
<dict> 
    <key>NSExtensionPrincipalClass</key> 
    <string>ShareViewController</string> 
    ... 
</dict> 
0

standardmäßig die Heute-Vorlage liefert folgende Info.plist Schlüssel und Werte (hier für ein OS X Ziel angezeigt):

<key>NSExtension</key> 
<dict> 
    <key>NSExtensionPointIdentifier</key> 
    <string>com.apple.widget-extension</string> 
    <key>NSExtensionPrincipalClass</key> 
    <string>TodayViewController</string> 
</dict> 

Wenn Sie eine benutzerdefinierte Ansicht-Controller verwenden Unterklasse verwenden Sie den Namen der benutzerdefinierten Klasse, um den TodayViewController-Wert für den NSExtensionPrincipalClass-Schlüssel zu ersetzen.

iOS. Wenn Sie die von der Vorlage bereitgestellte Storyboard-Datei nicht verwenden möchten, entfernen Sie den Schlüssel NSExtensionMainStoryboard, und fügen Sie den Schlüssel NSExtensionPrincipalClass hinzu, wobei Sie den Namen des View-Controllers für den Wert verwenden.

Die meisten Arbeiten, die Sie zum Erstellen eines Today-Widgets ausführen, umfassen das Entwerfen der Benutzeroberfläche und das Implementieren einer Ansichtscontrollerunterklasse, die Ihre benutzerdefinierten Funktionen ausführt.

BY APPLE GUIDELINES:-->click to view