WatchKit Catalog: Version 1.0, 2015-03-09
First public release.
|
@ -0,0 +1,42 @@
|
|||
Sample code project: WatchKit Catalog: Using WatchKit Interface Elements
|
||||
Version: 1.0
|
||||
|
||||
IMPORTANT: This Apple software is supplied to you by Apple
|
||||
Inc. ("Apple") in consideration of your agreement to the following
|
||||
terms, and your use, installation, modification or redistribution of
|
||||
this Apple software constitutes acceptance of these terms. If you do
|
||||
not agree with these terms, please do not use, install, modify or
|
||||
redistribute this Apple software.
|
||||
|
||||
In consideration of your agreement to abide by the following terms, and
|
||||
subject to these terms, Apple grants you a personal, non-exclusive
|
||||
license, under Apple's copyrights in this original Apple software (the
|
||||
"Apple Software"), to use, reproduce, modify and redistribute the Apple
|
||||
Software, with or without modifications, in source and/or binary forms;
|
||||
provided that if you redistribute the Apple Software in its entirety and
|
||||
without modifications, you must retain this notice and the following
|
||||
text and disclaimers in all such redistributions of the Apple Software.
|
||||
Neither the name, trademarks, service marks or logos of Apple Inc. may
|
||||
be used to endorse or promote products derived from the Apple Software
|
||||
without specific prior written permission from Apple. Except as
|
||||
expressly stated in this notice, no other rights or licenses, express or
|
||||
implied, are granted by Apple herein, including but not limited to any
|
||||
patent rights that may be infringed by your derivative works or by other
|
||||
works in which the Apple Software may be incorporated.
|
||||
|
||||
The Apple Software is provided by Apple on an "AS IS" basis. APPLE
|
||||
MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
|
||||
THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS
|
||||
FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
|
||||
OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
|
||||
IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
|
||||
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
|
||||
MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
|
||||
AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
|
||||
STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
|
@ -0,0 +1,46 @@
|
|||
# WatchKit Catalog: Using WatchKit Interface Elements
|
||||
|
||||
WatchKit Catalog is an exploration of the UI elements available in the WatchKit framework. Throughout the sample, you'll find tips and configurations that will help guide the development of your WatchKit app.
|
||||
|
||||
### Tips
|
||||
|
||||
- Glance and Notification schemes have been created for ease of switching between executables on the fly. In your projects, edit the WatchKit app scheme and change the Executable to the specific executable you'd like to run and debug. You can additionally create additional schemes, as this sample has.
|
||||
|
||||
- To debug the Glance or notifications in the iOS Simulator, select the appropriate scheme in the Xcode toolbar and then Build and Run.
|
||||
|
||||
- Tapping the Glance will launch the WatchKit app. In AAPLGlanceController, -updateUserActivity:userInfo:webpageURL: is called in -willActivate and takes advantage of Handoff to launch the wearer into the image detail controller (AAPLImageDetailController). When the WatchKit app is launched from the Glance, handleUserActivity: is called in AAPLInterfaceController. AAPLImageDetailController will be pushed to, as its controller's Identifier string is passed in the userInfo dictionary.
|
||||
|
||||
- AAPLButtonDetailController has two examples of how to hide and show UI elements at runtime. First, tapping on button "1" will toggle the hidden property of button "2." When hiding the button, the layout will change to make use of the newly available space. When showing it again, the layout will change to make room for it. The second example is by setting the alpha property of button "2" to 0.0 or 1.0. Tapping on button "3" will toggle this and while button "2" may look invisible, the space it takes up does not change and no layout changes will occur.
|
||||
|
||||
- In AAPLImageDetailController, note the comments where the "Walkway" image is being sent across to Apple Watch from the WatchKit Extension bundle. The animated image sequence is stored in the WatchKit app bundle. Comments are made throughout the sample project where images are used from one bundle or another.
|
||||
|
||||
- In the storyboard scene for AAPLGroupDetailController, note the use of nested groups to achieve more sophisticated layouts of images and labels. This is highly encouraged and will be necessary to achieve specific designs.
|
||||
|
||||
- AAPLTableDetailController has an example of inserting more rows into a table after the initial set of rows have been added to a table.
|
||||
|
||||
- AAPLControllerDetailController shows how to present a modal controller, as well as how to present a controller that does not match the navigation style of your root controller. In this case, the WatchKit app has a hierarchical navigation style. Using the presentation of a modal controller though, we are able to present a page-based set of controllers.
|
||||
|
||||
- AAPLControllerDetailController can present a modal controller. The "Dismiss" text of the modal controller is set in the Title field in the Attributes Inspector of the scene for AAPLPageController.
|
||||
|
||||
- AAPLTextInputController presents the text input controller with a set of suggestions. The result is sent to the parent iOS application and a confirmation message is sent back to the WatchKit app extension.
|
||||
|
||||
### Release Notes for Beta 5.
|
||||
|
||||
- Updated Handoff API in Glance.
|
||||
- Added WatchKit app icon.
|
||||
- Modified controllers to use images from the asset catalog in the WatchKit Extension.
|
||||
- Added example of setting the color and title for a switch.
|
||||
- Added example of a label using semibold font weight in Interface Builder.
|
||||
- Added example of a label using ultralight font weight programmatically.
|
||||
|
||||
## Requirements
|
||||
|
||||
### Build
|
||||
|
||||
Xcode 6.2 or later; iOS 8.2 SDK or later
|
||||
|
||||
### Runtime
|
||||
|
||||
iOS 8.2 or later
|
||||
|
||||
Copyright (C) 2014 Apple Inc. All rights reserved.
|
|
@ -0,0 +1,70 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"size" : "24x24",
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"filename" : "Icon-24@2x.png",
|
||||
"role" : "notificationCenter",
|
||||
"subtype" : "38mm"
|
||||
},
|
||||
{
|
||||
"size" : "27.5x27.5",
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"filename" : "Icon-27.5@2x.png",
|
||||
"role" : "notificationCenter",
|
||||
"subtype" : "42mm"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "watch",
|
||||
"filename" : "Icon-29@2x.png",
|
||||
"role" : "companionSettings",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "watch",
|
||||
"filename" : "Icon-29@3x.png",
|
||||
"role" : "companionSettings",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"size" : "40x40",
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"filename" : "Icon-40@2x.png",
|
||||
"role" : "appLauncher",
|
||||
"subtype" : "38mm"
|
||||
},
|
||||
{
|
||||
"size" : "44x44",
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"filename" : "Icon-44@2x.png",
|
||||
"role" : "appLauncher",
|
||||
"subtype" : "42mm"
|
||||
},
|
||||
{
|
||||
"size" : "86x86",
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"filename" : "Icon-86@2x.png",
|
||||
"role" : "quickLook",
|
||||
"subtype" : "38mm"
|
||||
},
|
||||
{
|
||||
"size" : "98x98",
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"filename" : "Icon-98@2x.png",
|
||||
"role" : "quickLook",
|
||||
"subtype" : "42mm"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 6.5 KiB |
BIN
WatchKitCatalog/WatchKit Catalog WatchKit App/Images.xcassets/Bus0.imageset/Bus0@2x.png
vendored
Normal file
After Width: | Height: | Size: 16 KiB |
23
WatchKitCatalog/WatchKit Catalog WatchKit App/Images.xcassets/Bus0.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"filename" : "Bus0@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"screenWidth" : "{130,145}",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"screenWidth" : "{146,165}",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
BIN
WatchKitCatalog/WatchKit Catalog WatchKit App/Images.xcassets/Bus1.imageset/Bus1@2x.png
vendored
Normal file
After Width: | Height: | Size: 22 KiB |
23
WatchKitCatalog/WatchKit Catalog WatchKit App/Images.xcassets/Bus1.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"filename" : "Bus1@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"screenWidth" : "{130,145}",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"screenWidth" : "{146,165}",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
BIN
WatchKitCatalog/WatchKit Catalog WatchKit App/Images.xcassets/Bus2.imageset/Bus2@2x.png
vendored
Normal file
After Width: | Height: | Size: 28 KiB |
23
WatchKitCatalog/WatchKit Catalog WatchKit App/Images.xcassets/Bus2.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"filename" : "Bus2@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"screenWidth" : "{130,145}",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"screenWidth" : "{146,165}",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
BIN
WatchKitCatalog/WatchKit Catalog WatchKit App/Images.xcassets/Bus3.imageset/Bus3@2x.png
vendored
Normal file
After Width: | Height: | Size: 20 KiB |
23
WatchKitCatalog/WatchKit Catalog WatchKit App/Images.xcassets/Bus3.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"filename" : "Bus3@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"screenWidth" : "{130,145}",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"screenWidth" : "{146,165}",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
BIN
WatchKitCatalog/WatchKit Catalog WatchKit App/Images.xcassets/Bus4.imageset/Bus4@2x.png
vendored
Normal file
After Width: | Height: | Size: 14 KiB |
23
WatchKitCatalog/WatchKit Catalog WatchKit App/Images.xcassets/Bus4.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"filename" : "Bus4@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"screenWidth" : "{130,145}",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"screenWidth" : "{146,165}",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
BIN
WatchKitCatalog/WatchKit Catalog WatchKit App/Images.xcassets/Bus5.imageset/Bus5@2x.png
vendored
Normal file
After Width: | Height: | Size: 4.9 KiB |
23
WatchKitCatalog/WatchKit Catalog WatchKit App/Images.xcassets/Bus5.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"filename" : "Bus5@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"screenWidth" : "{130,145}",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"screenWidth" : "{146,165}",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
23
WatchKitCatalog/WatchKit Catalog WatchKit App/Images.xcassets/Laugh.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"filename" : "Laugh@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"screenWidth" : "{130,145}",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"screenWidth" : "{146,165}",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
BIN
WatchKitCatalog/WatchKit Catalog WatchKit App/Images.xcassets/Laugh.imageset/Laugh@2x.png
vendored
Normal file
After Width: | Height: | Size: 6.2 KiB |
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"filename" : "LocationMarker@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"screenWidth" : "{130,145}",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"screenWidth" : "{146,165}",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 6.0 KiB |
23
WatchKitCatalog/WatchKit Catalog WatchKit App/Images.xcassets/Whale.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"filename" : "Whale@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"screenWidth" : "{130,145}",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"screenWidth" : "{146,165}",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
BIN
WatchKitCatalog/WatchKit Catalog WatchKit App/Images.xcassets/Whale.imageset/Whale@2x.png
vendored
Normal file
After Width: | Height: | Size: 14 KiB |
23
WatchKitCatalog/WatchKit Catalog WatchKit App/Images.xcassets/Worry.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x",
|
||||
"filename" : "Worry@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"screenWidth" : "{130,145}",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"screenWidth" : "{146,165}",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
BIN
WatchKitCatalog/WatchKit Catalog WatchKit App/Images.xcassets/Worry.imageset/Worry@2x.png
vendored
Normal file
After Width: | Height: | Size: 6.2 KiB |
|
@ -0,0 +1,35 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>Catalog</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.example.apple-samplecode.WatchKit-Catalog.watchkitapp</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Catalog</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
</array>
|
||||
<key>WKCompanionAppBundleIdentifier</key>
|
||||
<string>com.example.apple-samplecode.WatchKit-Catalog</string>
|
||||
<key>WKWatchKitApp</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,565 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder.WatchKit.Storyboard" version="3.0" toolsVersion="6750" systemVersion="14C108" targetRuntime="watchKit" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="AgC-eL-Hgc">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6735"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBWatchKitPlugin" version="3737"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--Catalog-->
|
||||
<scene sceneID="aou-V4-d1y">
|
||||
<objects>
|
||||
<controller identifier="interfaceController" title="Catalog" id="AgC-eL-Hgc" customClass="AAPLInterfaceController">
|
||||
<items>
|
||||
<table alignment="left" id="3Hk-Dw-EC3">
|
||||
<items>
|
||||
<tableRow identifier="default" id="LQ2-gd-Btl" customClass="AAPLElementRowController">
|
||||
<group key="rootItem" width="1" alignment="left" id="ZGA-mp-Zka">
|
||||
<items>
|
||||
<label alignment="center" verticalAlignment="center" text="Label" id="F1f-WA-jZa"/>
|
||||
</items>
|
||||
<color key="backgroundColor" red="0.94901960784313721" green="0.95686274509803926" blue="0.9882352941176471" alpha="0.14000000000000001" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</group>
|
||||
<connections>
|
||||
<outlet property="elementLabel" destination="F1f-WA-jZa" id="afA-3y-qUG"/>
|
||||
</connections>
|
||||
</tableRow>
|
||||
</items>
|
||||
</table>
|
||||
</items>
|
||||
<connections>
|
||||
<outlet property="interfaceTable" destination="3Hk-Dw-EC3" id="8tm-Sm-gVl"/>
|
||||
</connections>
|
||||
</controller>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="235" y="-69"/>
|
||||
</scene>
|
||||
<!--Glance Interface Controller-->
|
||||
<scene sceneID="BOz-TT-tkC">
|
||||
<objects>
|
||||
<glanceController spacing="0.0" topTemplateType="body1Medium" id="0uZ-2p-rRc" customClass="AAPLGlanceController">
|
||||
<items>
|
||||
<label alignment="left" text="WatchKit Catalog" id="gaI-OH-psT"/>
|
||||
<label alignment="left" text="Tap Glance" id="ddL-00-QSD"/>
|
||||
<group alignment="left" id="56w-Mv-CNg">
|
||||
<items>
|
||||
<imageView width="1" height="1" alignment="left" contentMode="scaleAspectFit" id="qPv-Zg-Ju4"/>
|
||||
</items>
|
||||
</group>
|
||||
</items>
|
||||
<edgeInsets key="margins" left="0.0" right="0.0" top="0.0" bottom="14"/>
|
||||
<connections>
|
||||
<outlet property="glanceImage" destination="qPv-Zg-Ju4" id="zU3-MG-SbW"/>
|
||||
</connections>
|
||||
</glanceController>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="235" y="1426"/>
|
||||
</scene>
|
||||
<!--Static Notification Interface Controller-->
|
||||
<scene sceneID="AEw-b0-oYE">
|
||||
<objects>
|
||||
<notificationController id="YCC-NB-fut">
|
||||
<items>
|
||||
<label alignment="center" text="- Static -" textAlignment="center" numberOfLines="0" id="ivJ-0G-bDR"/>
|
||||
<separator alignment="left" id="fUV-Py-o42">
|
||||
<color key="color" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</separator>
|
||||
<label alignment="left" text="Alert from payload." numberOfLines="0" id="XG7-oj-wkh"/>
|
||||
</items>
|
||||
<notificationCategory key="notificationCategory" identifier="myCategory" id="JfB-70-Muf">
|
||||
<color key="sashColor" red="0.80000001190000003" green="0.40000000600000002" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</notificationCategory>
|
||||
<connections>
|
||||
<outlet property="notificationAlertLabel" destination="XG7-oj-wkh" id="gMR-p4-Z2l"/>
|
||||
<segue destination="gdX-wl-uQE" kind="relationship" relationship="dynamicNotificationInterface" id="fKh-qV-3T2"/>
|
||||
</connections>
|
||||
</notificationController>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="235" y="1755"/>
|
||||
</scene>
|
||||
<!--Notification Controller-->
|
||||
<scene sceneID="KIl-fV-djm">
|
||||
<objects>
|
||||
<controller id="gdX-wl-uQE" customClass="AAPLNotificationController">
|
||||
<items>
|
||||
<label alignment="center" text="- Dynamic -" textAlignment="center" numberOfLines="0" id="pZY-e7-d8r"/>
|
||||
<separator alignment="left" id="Ulp-oM-cKi">
|
||||
<color key="color" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</separator>
|
||||
</items>
|
||||
</controller>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="556" y="1755"/>
|
||||
</scene>
|
||||
<!--Button-->
|
||||
<scene sceneID="1Fe-wX-9eZ">
|
||||
<objects>
|
||||
<controller identifier="buttonDetailController" title="Button" id="NJ4-uK-UVW" customClass="AAPLButtonDetailController">
|
||||
<items>
|
||||
<button width="1" alignment="left" title="Text" id="8XO-wv-QHx"/>
|
||||
<button alignment="left" id="8Mf-2D-ORo">
|
||||
<group key="contentGroup" width="1" alignment="left" spacing="6" id="MDV-qd-6Cp">
|
||||
<items>
|
||||
<imageView width="35" height="35" alignment="left" image="LocationMarker" id="lmE-5L-IFc"/>
|
||||
<label alignment="left" verticalAlignment="center" text="Group" id="9ma-tk-xph"/>
|
||||
</items>
|
||||
<color key="backgroundColor" red="0.94901960780000005" green="0.95686274510000002" blue="0.98823529409999999" alpha="0.14000000000000001" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<edgeInsets key="margins" left="2" right="2" top="2" bottom="2"/>
|
||||
</group>
|
||||
</button>
|
||||
<group width="1" alignment="left" spacing="2" id="NGP-oQ-Ri0">
|
||||
<items>
|
||||
<button width="0.33000000000000002" alignment="left" title="1" id="a8R-uD-Fjb">
|
||||
<connections>
|
||||
<action selector="hideAndShow" destination="NJ4-uK-UVW" id="OMd-F4-Ob1"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button width="0.33000000000000002" alignment="left" title="2" id="4DB-CH-Xbj"/>
|
||||
<button width="0.33000000000000002" alignment="left" title="3" id="3qa-dZ-7Vj">
|
||||
<connections>
|
||||
<action selector="changeAlpha" destination="NJ4-uK-UVW" id="e1y-nK-Frj"/>
|
||||
</connections>
|
||||
</button>
|
||||
</items>
|
||||
</group>
|
||||
<button width="1" alignment="left" title="Disabled" enabled="NO" id="cAV-mk-rbB"/>
|
||||
</items>
|
||||
<connections>
|
||||
<outlet property="alphaButton" destination="3qa-dZ-7Vj" id="QPs-Fd-Aax"/>
|
||||
<outlet property="defaultButton" destination="8XO-wv-QHx" id="ICG-qf-h2k"/>
|
||||
<outlet property="hiddenButton" destination="a8R-uD-Fjb" id="vwy-ys-sdJ"/>
|
||||
<outlet property="placeholderButton" destination="4DB-CH-Xbj" id="iSc-fG-Dtl"/>
|
||||
</connections>
|
||||
</controller>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="458" y="212.75"/>
|
||||
</scene>
|
||||
<!--Switch-->
|
||||
<scene sceneID="mCa-dj-2bV">
|
||||
<objects>
|
||||
<controller identifier="switchDetailController" title="Switch" id="Hq4-MZ-jxL" customClass="AAPLSwitchDetailController">
|
||||
<items>
|
||||
<switch alignment="left" value="YES" title="On" id="W46-bh-O56"/>
|
||||
<switch alignment="left" value="YES" title="Off (API)" id="hOE-Dd-e6Q"/>
|
||||
<switch width="1" alignment="left" value="YES" title="Switch w/ Action" id="ovR-bL-V9H">
|
||||
<connections>
|
||||
<action selector="switchAction:" destination="Hq4-MZ-jxL" id="wE4-eG-Vwx"/>
|
||||
</connections>
|
||||
</switch>
|
||||
<switch width="1" alignment="left" value="YES" title="Colored Switch" id="vwg-aH-Y5q"/>
|
||||
<switch alignment="left" value="YES" enabled="NO" title="Disabled" id="jjD-Zy-Mfy"/>
|
||||
</items>
|
||||
<connections>
|
||||
<outlet property="coloredSwitch" destination="vwg-aH-Y5q" id="P9b-O9-nfT"/>
|
||||
<outlet property="offSwitch" destination="hOE-Dd-e6Q" id="LxH-Xe-qHT"/>
|
||||
</connections>
|
||||
</controller>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="669" y="211.25"/>
|
||||
</scene>
|
||||
<!--Slider-->
|
||||
<scene sceneID="7ro-YB-IC1">
|
||||
<objects>
|
||||
<controller identifier="sliderDetailController" title="Slider" id="xX7-A6-gdB" customClass="AAPLSliderDetailController">
|
||||
<items>
|
||||
<label alignment="left" text="Default" id="MOt-7P-uxj"/>
|
||||
<slider width="1" alignment="left" value="0.5" steps="3" id="0tH-8K-FTy"/>
|
||||
<label alignment="left" text="Continuous with Action" numberOfLines="0" id="kHh-lW-kK7"/>
|
||||
<slider width="1" alignment="left" continuous="YES" value="0.5" steps="3" id="NuH-kn-pIO">
|
||||
<connections>
|
||||
<action selector="sliderAction:" destination="xX7-A6-gdB" id="Jda-Mh-ugk"/>
|
||||
</connections>
|
||||
</slider>
|
||||
<label alignment="left" text="Colored with 5 Segments" numberOfLines="0" id="hX8-b8-HWN"/>
|
||||
<slider width="1" alignment="left" value="0.5" steps="5" id="vQF-QP-AHm"/>
|
||||
<label alignment="left" text="Min and max images" numberOfLines="0" id="eWe-Yc-E1X"/>
|
||||
<slider width="1" alignment="left" value="0.5" steps="3" minimumImage="Worry" maximumImage="Laugh" id="EOF-jG-N8m"/>
|
||||
<label alignment="left" text="Disabled" numberOfLines="0" id="qDm-pM-yS9"/>
|
||||
<slider width="1" alignment="left" enabled="NO" value="0.5" steps="3" id="FK2-St-ZLQ"/>
|
||||
</items>
|
||||
<connections>
|
||||
<outlet property="coloredSlider" destination="vQF-QP-AHm" id="6cU-hs-otc"/>
|
||||
</connections>
|
||||
</controller>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="888" y="317.75"/>
|
||||
</scene>
|
||||
<!--Text Input-->
|
||||
<scene sceneID="XXJ-5G-WLV">
|
||||
<objects>
|
||||
<controller identifier="textInputDetailController" title="Text Input" id="N5E-eF-Wkp" customClass="AAPLTextInputController">
|
||||
<items>
|
||||
<button width="1" alignment="left" title="Reply" id="AfS-Yb-drd">
|
||||
<connections>
|
||||
<action selector="replyWithTextInputController" destination="N5E-eF-Wkp" id="O65-wT-g7M"/>
|
||||
</connections>
|
||||
</button>
|
||||
</items>
|
||||
</controller>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="1094" y="203"/>
|
||||
</scene>
|
||||
<!--Label-->
|
||||
<scene sceneID="m77-Cb-HAI">
|
||||
<objects>
|
||||
<controller identifier="labelDetailController" title="Label" id="ACa-O1-ewQ" customClass="AAPLLabelDetailController">
|
||||
<items>
|
||||
<label alignment="center" text="Headline" textAlignment="center" id="kVw-dP-ubT">
|
||||
<fontDescription key="font" style="UICTFontTextStyleHeadline"/>
|
||||
</label>
|
||||
<label alignment="center" text="Subhead" textAlignment="center" id="qFZ-uP-A1l">
|
||||
<fontDescription key="font" style="UICTFontTextStyleSubhead"/>
|
||||
</label>
|
||||
<label alignment="center" text="Body" textAlignment="center" id="1hX-5X-LH7">
|
||||
<fontDescription key="font" style="UICTFontTextStyleBody"/>
|
||||
</label>
|
||||
<label alignment="center" text="Caption 1" textAlignment="center" id="oU3-GQ-2aC">
|
||||
<fontDescription key="font" style="UICTFontTextStyleCaption1"/>
|
||||
</label>
|
||||
<label alignment="center" text="Caption 2" textAlignment="center" id="yvw-CH-8xv">
|
||||
<fontDescription key="font" style="UICTFontTextStyleCaption2"/>
|
||||
</label>
|
||||
<label alignment="center" text="Footnote" textAlignment="center" id="nnx-ym-7ds">
|
||||
<fontDescription key="font" style="UICTFontTextStyleFootnote"/>
|
||||
</label>
|
||||
<label alignment="center" text="Colored Label" textAlignment="center" id="ic6-01-abF"/>
|
||||
<label alignment="center" text="Semibold Label" id="20P-VX-XXg">
|
||||
<fontDescription key="font" type="system" weight="semibold" pointSize="16"/>
|
||||
</label>
|
||||
<label alignment="center" text="Label" id="LaE-eL-ijQ">
|
||||
<fontDescription key="font" style="UICTFontTextStyleBody"/>
|
||||
</label>
|
||||
<dateLabel alignment="center" minimumScaleFactor="0.0" id="Dqk-xg-uyY">
|
||||
<dateFormatterStyle key="dateStyle" none="YES" medium="YES"/>
|
||||
<dateFormatterStyle key="timeStyle" none="YES" short="YES"/>
|
||||
</dateLabel>
|
||||
<timer alignment="center" minimumScaleFactor="0.0" format="abbreviated" id="2YG-3i-leu">
|
||||
<color key="textColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<fontDescription key="font" style="UICTFontTextStyleFootnote"/>
|
||||
<calendarUnit key="units" year="YES" month="YES" day="YES" hour="YES" minute="YES" second="YES" weekOfMonth="YES"/>
|
||||
</timer>
|
||||
</items>
|
||||
<connections>
|
||||
<outlet property="coloredLabel" destination="ic6-01-abF" id="WDE-TA-4O3"/>
|
||||
<outlet property="timer" destination="2YG-3i-leu" id="CHz-N7-TEO"/>
|
||||
<outlet property="ultralightLabel" destination="LaE-eL-ijQ" id="Wjv-Dd-gWd"/>
|
||||
</connections>
|
||||
</controller>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="235" y="239.5"/>
|
||||
</scene>
|
||||
<!--Image-->
|
||||
<scene sceneID="M3I-h5-v4F">
|
||||
<objects>
|
||||
<controller identifier="imageDetailController" title="Image" id="0Wv-Oj-wcZ" customClass="AAPLImageDetailController">
|
||||
<items>
|
||||
<label alignment="left" text="Image set from image cache" numberOfLines="0" id="jNG-Oi-MQK"/>
|
||||
<imageView alignment="center" id="e5o-AV-Ltk"/>
|
||||
<imageView width="1" alignment="center" contentMode="scaleAspectFill" id="h5E-26-Mhp"/>
|
||||
<imageView alignment="center" image="Bus0" animationDuration="2" id="4vt-jD-Gfc"/>
|
||||
<group width="1" alignment="left" spacing="2" id="OLq-fQ-zhq">
|
||||
<items>
|
||||
<button width="0.5" alignment="left" title="Play" id="Ebj-Ir-WMk">
|
||||
<connections>
|
||||
<action selector="playAnimation" destination="0Wv-Oj-wcZ" id="Cj4-Fc-2TA"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button width="0.5" alignment="left" title="Stop" id="Edy-lZ-IBA">
|
||||
<connections>
|
||||
<action selector="stopAnimation" destination="0Wv-Oj-wcZ" id="rvE-hk-T7I"/>
|
||||
</connections>
|
||||
</button>
|
||||
</items>
|
||||
</group>
|
||||
</items>
|
||||
<connections>
|
||||
<outlet property="animatedImage" destination="4vt-jD-Gfc" id="FZE-X9-126"/>
|
||||
<outlet property="cachedImage" destination="e5o-AV-Ltk" id="roU-Bj-xAG"/>
|
||||
<outlet property="playButton" destination="Ebj-Ir-WMk" id="JDk-N0-agS"/>
|
||||
<outlet property="staticImage" destination="h5E-26-Mhp" id="WG3-kg-3ZO"/>
|
||||
<outlet property="stopButton" destination="Edy-lZ-IBA" id="SVM-Av-kT4"/>
|
||||
</connections>
|
||||
</controller>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="235" y="745.75"/>
|
||||
</scene>
|
||||
<!--Map-->
|
||||
<scene sceneID="xYS-PC-q5i">
|
||||
<objects>
|
||||
<controller identifier="mapDetailController" title="Map" id="DxF-Qd-CZE" customClass="AAPLMapDetailController">
|
||||
<items>
|
||||
<group width="1" alignment="left" spacing="2" id="ae3-qF-qkM">
|
||||
<items>
|
||||
<button width="0.50000000000000011" alignment="left" title="Apple" id="baA-gK-nOm">
|
||||
<fontDescription key="font" style="UICTFontTextStyleBody"/>
|
||||
<connections>
|
||||
<action selector="goToApple" destination="DxF-Qd-CZE" id="SdU-gL-GGo"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button width="0.50000000000000011" alignment="left" title="Tokyo" id="PTY-Us-E8S">
|
||||
<fontDescription key="font" style="UICTFontTextStyleBody"/>
|
||||
<connections>
|
||||
<action selector="goToTokyo" destination="DxF-Qd-CZE" id="EHs-Fd-wsG"/>
|
||||
</connections>
|
||||
</button>
|
||||
</items>
|
||||
</group>
|
||||
<group width="1" alignment="left" spacing="2" id="bJh-zW-5Ji">
|
||||
<items>
|
||||
<button width="0.5" alignment="left" title="In" id="uNV-1m-dQh">
|
||||
<fontDescription key="font" style="UICTFontTextStyleBody"/>
|
||||
<connections>
|
||||
<action selector="zoomIn" destination="DxF-Qd-CZE" id="hlo-po-nFM"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button width="0.5" alignment="left" title="Out" id="8M3-yO-77i">
|
||||
<fontDescription key="font" style="UICTFontTextStyleBody"/>
|
||||
<connections>
|
||||
<action selector="zoomOut" destination="DxF-Qd-CZE" id="vY0-1U-tGX"/>
|
||||
</connections>
|
||||
</button>
|
||||
</items>
|
||||
</group>
|
||||
<map alignment="center" id="KKt-Tm-wuD"/>
|
||||
<group width="1" alignment="left" spacing="2" id="nmt-9i-hTK">
|
||||
<items>
|
||||
<button width="0.5" alignment="left" title="Pins" id="nsf-EN-wP0">
|
||||
<fontDescription key="font" style="UICTFontTextStyleBody"/>
|
||||
<connections>
|
||||
<action selector="addPinAnnotations" destination="DxF-Qd-CZE" id="Xtz-jh-Uej"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button width="0.5" alignment="left" title="Images" id="Dc1-hJ-j4b">
|
||||
<fontDescription key="font" style="UICTFontTextStyleBody"/>
|
||||
<connections>
|
||||
<action selector="addImageAnnotations" destination="DxF-Qd-CZE" id="ag4-Ts-GPM"/>
|
||||
</connections>
|
||||
</button>
|
||||
</items>
|
||||
</group>
|
||||
<button width="1" alignment="left" title="Remove All" id="Uld-Wn-88k">
|
||||
<fontDescription key="font" style="UICTFontTextStyleBody"/>
|
||||
<connections>
|
||||
<action selector="removeAll" destination="DxF-Qd-CZE" id="lCP-Sl-j2X"/>
|
||||
</connections>
|
||||
</button>
|
||||
</items>
|
||||
<connections>
|
||||
<outlet property="appleButton" destination="baA-gK-nOm" id="5c6-cH-YHY"/>
|
||||
<outlet property="imagesButton" destination="Dc1-hJ-j4b" id="K9F-q2-mBz"/>
|
||||
<outlet property="inButton" destination="uNV-1m-dQh" id="egj-ui-bhS"/>
|
||||
<outlet property="map" destination="KKt-Tm-wuD" id="X0X-of-YHi"/>
|
||||
<outlet property="outButton" destination="8M3-yO-77i" id="E12-TI-GtC"/>
|
||||
<outlet property="pinsButton" destination="nsf-EN-wP0" id="uFd-NX-wwv"/>
|
||||
<outlet property="removeAllButton" destination="Uld-Wn-88k" id="POG-zn-YkB"/>
|
||||
<outlet property="tokyoButton" destination="PTY-Us-E8S" id="Ppy-0A-QRy"/>
|
||||
</connections>
|
||||
</controller>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="669" y="743"/>
|
||||
</scene>
|
||||
<!--Separator-->
|
||||
<scene sceneID="KgY-GF-oaX">
|
||||
<objects>
|
||||
<controller identifier="separatorDetailController" title="Separator" id="lG6-kc-lse" customClass="AAPLSeparatorDetailController">
|
||||
<items>
|
||||
<label alignment="left" text="A default white separator." numberOfLines="0" id="Q72-GY-BV0">
|
||||
<fontDescription key="font" style="UICTFontTextStyleBody"/>
|
||||
</label>
|
||||
<separator alignment="left" id="Pnn-or-5MD"/>
|
||||
<label alignment="left" text="A relative width blue separator." textAlignment="left" numberOfLines="0" id="iEs-SQ-Fgs">
|
||||
<fontDescription key="font" style="UICTFontTextStyleBody"/>
|
||||
</label>
|
||||
<separator width="0.5" alignment="center" id="Icd-h9-qMl">
|
||||
<color key="color" red="0.40000000600000002" green="0.80000001190000003" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</separator>
|
||||
<label alignment="left" text="A fixed width green separator." numberOfLines="0" id="Hox-VI-FOx">
|
||||
<fontDescription key="font" style="UICTFontTextStyleBody"/>
|
||||
</label>
|
||||
<separator width="100" alignment="center" id="Seo-L5-V4O">
|
||||
<color key="color" red="0.0" green="1" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</separator>
|
||||
<label alignment="left" text="A vertical separator in a group." numberOfLines="0" id="0xY-q4-bYI">
|
||||
<fontDescription key="font" style="UICTFontTextStyleBody"/>
|
||||
</label>
|
||||
<group width="1" height="40" alignment="center" verticalAlignment="center" spacing="10" id="yH3-dB-MGE">
|
||||
<items>
|
||||
<label alignment="center" verticalAlignment="center" text="Left" id="fKC-vR-UZm"/>
|
||||
<separator height="0.80000000000000004" alignment="center" verticalAlignment="center" id="scg-Nk-qDz"/>
|
||||
<label alignment="center" verticalAlignment="center" text="Right" id="Pzu-gV-jOJ"/>
|
||||
</items>
|
||||
</group>
|
||||
</items>
|
||||
</controller>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="458" y="716.25"/>
|
||||
</scene>
|
||||
<!--Group-->
|
||||
<scene sceneID="EQf-5o-8Mv">
|
||||
<objects>
|
||||
<controller identifier="groupDetailController" title="Group" id="cnC-hb-ogk" customClass="AAPLGroupDetailController">
|
||||
<items>
|
||||
<label alignment="left" text="Horizontal" id="x3c-za-yQK"/>
|
||||
<group width="1" alignment="left" spacing="4" id="HEf-5V-P9P">
|
||||
<items>
|
||||
<button width="0.5" alignment="left" title="Button" id="Ktd-g3-MpZ"/>
|
||||
<button width="0.5" alignment="left" title="Button" id="9Dh-9S-wOA"/>
|
||||
</items>
|
||||
<color key="backgroundColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<edgeInsets key="margins" left="4" right="4" top="4" bottom="4"/>
|
||||
</group>
|
||||
<label alignment="left" text="Vertical" id="MgH-iK-eAV">
|
||||
<fontDescription key="font" style="UICTFontTextStyleBody"/>
|
||||
</label>
|
||||
<group width="1" alignment="center" layout="vertical" radius="3" spacing="8" id="5q4-Vi-KtG">
|
||||
<items>
|
||||
<button width="1" alignment="left" title="Button" id="oVx-UG-Oo8"/>
|
||||
<button width="1" alignment="left" title="Button" id="i53-Rg-MeA"/>
|
||||
</items>
|
||||
<edgeInsets key="margins" left="2" right="2" top="2" bottom="2"/>
|
||||
</group>
|
||||
<label alignment="left" text="Mixed" id="QsT-F0-5qG">
|
||||
<fontDescription key="font" style="UICTFontTextStyleBody"/>
|
||||
</label>
|
||||
<group width="1" alignment="left" id="kVh-l8-PBe">
|
||||
<items>
|
||||
<group width="0.5" alignment="left" layout="vertical" id="iQ3-uJ-aqp">
|
||||
<items>
|
||||
<imageView alignment="center" image="Laugh" id="3AK-D3-DPm"/>
|
||||
<label alignment="center" text="Laugh" id="P24-AD-cFY"/>
|
||||
</items>
|
||||
<edgeInsets key="margins" left="0.0" right="0.0" top="4" bottom="4"/>
|
||||
</group>
|
||||
<group width="0.50000000000000011" alignment="left" layout="vertical" id="laW-tI-pcQ">
|
||||
<items>
|
||||
<imageView alignment="center" image="Worry" id="OfU-rL-V7M"/>
|
||||
<label alignment="center" text="Worry" id="mwf-sG-zZt"/>
|
||||
</items>
|
||||
<edgeInsets key="margins" left="0.0" right="0.0" top="4" bottom="4"/>
|
||||
</group>
|
||||
</items>
|
||||
</group>
|
||||
</items>
|
||||
<connections>
|
||||
<outlet property="buttonOne" destination="oVx-UG-Oo8" id="RTN-PV-hSg"/>
|
||||
<outlet property="buttonTwo" destination="i53-Rg-MeA" id="W3G-3F-zUb"/>
|
||||
</connections>
|
||||
</controller>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="888" y="725"/>
|
||||
</scene>
|
||||
<!--Table-->
|
||||
<scene sceneID="UNG-mI-Hyp">
|
||||
<objects>
|
||||
<controller identifier="tableDetailController" title="Table" id="H8F-tc-qXL" customClass="AAPLTableDetailController">
|
||||
<items>
|
||||
<table alignment="left" id="nXC-Mh-TYy">
|
||||
<items>
|
||||
<tableRow identifier="default" id="zJA-dk-zIT" customClass="AAPLTableRowController">
|
||||
<group key="rootItem" width="1" alignment="left" spacing="6" id="ASs-9x-fCK">
|
||||
<items>
|
||||
<imageView width="35" height="35" alignment="left" verticalAlignment="center" image="LocationMarker" id="rac-gq-1kM"/>
|
||||
<label alignment="left" verticalAlignment="center" text="Location" id="jkO-KQ-vGr"/>
|
||||
</items>
|
||||
<color key="backgroundColor" red="0.94901960780000005" green="0.95686274510000002" blue="0.98823529409999999" alpha="0.14000000000000001" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<edgeInsets key="margins" left="2" right="2" top="2" bottom="2"/>
|
||||
</group>
|
||||
<connections>
|
||||
<outlet property="rowLabel" destination="jkO-KQ-vGr" id="Hcb-P2-F5Q"/>
|
||||
</connections>
|
||||
</tableRow>
|
||||
</items>
|
||||
</table>
|
||||
</items>
|
||||
<connections>
|
||||
<outlet property="interfaceTable" destination="nXC-Mh-TYy" id="4YS-uT-eWw"/>
|
||||
</connections>
|
||||
</controller>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="235" y="1076"/>
|
||||
</scene>
|
||||
<!--Device-->
|
||||
<scene sceneID="QdT-Ds-OXs">
|
||||
<objects>
|
||||
<controller identifier="deviceDetailController" title="Device" id="fmI-ft-6CA" customClass="AAPLDeviceDetailController">
|
||||
<items>
|
||||
<label alignment="left" text="Bounds:" id="yw5-bY-JCQ"/>
|
||||
<label alignment="left" text="Bounds" numberOfLines="0" id="7bV-KK-bKT">
|
||||
<fontDescription key="font" style="UICTFontTextStyleBody"/>
|
||||
</label>
|
||||
<separator alignment="left" id="uad-Es-JF1"/>
|
||||
<label alignment="left" text="Scale:" id="tSH-6L-civ"/>
|
||||
<label alignment="left" text="Scale" numberOfLines="0" id="X5F-gg-KBJ">
|
||||
<fontDescription key="font" style="UICTFontTextStyleBody"/>
|
||||
</label>
|
||||
<separator alignment="left" id="Zq0-lc-8cX"/>
|
||||
<label alignment="left" text="Content Size:" id="rFS-0C-cFH"/>
|
||||
<label alignment="left" text="preferredContentSizeCategory" numberOfLines="0" id="CNz-fl-bOE">
|
||||
<fontDescription key="font" style="UICTFontTextStyleBody"/>
|
||||
</label>
|
||||
</items>
|
||||
<connections>
|
||||
<outlet property="boundsLabel" destination="7bV-KK-bKT" id="6eE-Fn-FaB"/>
|
||||
<outlet property="preferredContentSizeLabel" destination="CNz-fl-bOE" id="2PE-XZ-7rr"/>
|
||||
<outlet property="scaleLabel" destination="X5F-gg-KBJ" id="gYL-Fs-emq"/>
|
||||
</connections>
|
||||
</controller>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="458" y="1112.5"/>
|
||||
</scene>
|
||||
<!--Controller-->
|
||||
<scene sceneID="vQD-To-ac3">
|
||||
<objects>
|
||||
<controller identifier="controllerDetailController" title="Controller" id="jfY-fy-4W5" customClass="AAPLControllerDetailController">
|
||||
<items>
|
||||
<button width="1" alignment="center" title="Present Pages" id="8Dv-qI-ZTo">
|
||||
<connections>
|
||||
<action selector="presentPages" destination="jfY-fy-4W5" id="gDf-ps-mFH"/>
|
||||
</connections>
|
||||
</button>
|
||||
<label alignment="center" text="Click-and-hold on this controller, in the iOS Simulator, to perform a Force Touch gesture and display a menu." numberOfLines="0" id="tpT-kN-C2w"/>
|
||||
</items>
|
||||
<menu key="menu" id="l2j-7A-7iS">
|
||||
<items>
|
||||
<menuItem title="Yes" icon="accept" id="Ne8-T1-LRb">
|
||||
<connections>
|
||||
<action selector="menuItemTapped" destination="jfY-fy-4W5" id="vgh-DN-Aoc"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="No" icon="decline" id="IBg-XE-IlE">
|
||||
<connections>
|
||||
<action selector="menuItemTapped" destination="jfY-fy-4W5" id="7JB-ww-XgM"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Whale" image="Whale.png" id="cf0-ge-u8R">
|
||||
<connections>
|
||||
<action selector="menuItemTapped" destination="jfY-fy-4W5" id="gyy-0l-JXk"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Cupertino" image="LocationMarker.png" id="ECD-xa-OEf">
|
||||
<connections>
|
||||
<action selector="menuItemTapped" destination="jfY-fy-4W5" id="nhC-H1-0DK"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</controller>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="669" y="1088.25"/>
|
||||
</scene>
|
||||
<!--Dismiss-->
|
||||
<scene sceneID="ggQ-Gf-354">
|
||||
<objects>
|
||||
<controller identifier="pageController" title="Dismiss" id="tIW-Jo-Ezh" customClass="AAPLPageController">
|
||||
<items>
|
||||
<label alignment="center" verticalAlignment="center" text="Label" textAlignment="center" id="tjb-Rt-efI"/>
|
||||
</items>
|
||||
<connections>
|
||||
<outlet property="pageLabel" destination="tjb-Rt-efI" id="26X-fp-eRM"/>
|
||||
</connections>
|
||||
</controller>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="888" y="1076"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
<color key="tintColor" red="0.80000001192092896" green="0.40000000596046448" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</document>
|
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller displays buttons and shows use of groups within buttons. This also demonstrates how to hide and show UI elements at runtime.
|
||||
*/
|
||||
|
||||
@import WatchKit;
|
||||
|
||||
@interface AAPLButtonDetailController : WKInterfaceController
|
||||
@end
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller displays buttons and shows use of groups within buttons. This also demonstrates how to hide and show UI elements at runtime.
|
||||
*/
|
||||
|
||||
#import "AAPLButtonDetailController.h"
|
||||
|
||||
@interface AAPLButtonDetailController()
|
||||
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceButton *defaultButton;
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceButton *hiddenButton;
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceButton *placeholderButton;
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceButton *alphaButton;
|
||||
@property (nonatomic, getter=isHidden) BOOL hidden;
|
||||
@property (nonatomic) CGFloat placeholderAlpha;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation AAPLButtonDetailController
|
||||
|
||||
- (instancetype)init {
|
||||
self = [super init];
|
||||
|
||||
if (self) {
|
||||
// Initialize variables here.
|
||||
// Configure interface objects here.
|
||||
|
||||
_hidden = NO;
|
||||
_placeholderAlpha = 1.0;
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)willActivate {
|
||||
// This method is called when the controller is about to be visible to the wearer.
|
||||
NSLog(@"%@ will activate", self);
|
||||
}
|
||||
|
||||
- (void)didDeactivate {
|
||||
// This method is called when the controller is no longer visible.
|
||||
NSLog(@"%@ did deactivate", self);
|
||||
}
|
||||
|
||||
- (IBAction)hideAndShow {
|
||||
[self.placeholderButton setHidden:!self.isHidden];
|
||||
|
||||
self.hidden = !self.isHidden;
|
||||
}
|
||||
|
||||
- (IBAction)changeAlpha {
|
||||
[self.placeholderButton setAlpha:(self.placeholderAlpha == 1.0 ? 0.0 : 1.0)];
|
||||
|
||||
self.placeholderAlpha = (self.placeholderAlpha == 1.0 ? 0.0 : 1.0);
|
||||
}
|
||||
|
||||
@end
|
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller demonstrates how to present a modal controller with a page-based navigation style. By performing a Force Touch gesture on the controller (click-and-hold in the iOS Simulator), you can present a menu.
|
||||
*/
|
||||
|
||||
@import WatchKit;
|
||||
|
||||
@interface AAPLControllerDetailController : WKInterfaceController
|
||||
@end
|
|
@ -0,0 +1,44 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller demonstrates how to present a modal controller with a page-based navigation style. By performing a Force Touch gesture on the controller (click-and-hold in the iOS Simulator), you can present a menu.
|
||||
*/
|
||||
|
||||
#import "AAPLControllerDetailController.h"
|
||||
|
||||
@implementation AAPLControllerDetailController
|
||||
|
||||
- (instancetype)init {
|
||||
self = [super init];
|
||||
|
||||
if (self) {
|
||||
// Initialize variables here.
|
||||
// Configure interface objects here.
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)willActivate {
|
||||
// This method is called when the controller is about to be visible to the wearer.
|
||||
NSLog(@"%@ will activate", self);
|
||||
}
|
||||
|
||||
- (void)didDeactivate {
|
||||
// This method is called when the controller is no longer visible.
|
||||
NSLog(@"%@ did deactivate", self);
|
||||
}
|
||||
|
||||
- (IBAction)presentPages {
|
||||
NSArray *controllerNames = @[@"pageController", @"pageController", @"pageController", @"pageController", @"pageController"];
|
||||
NSArray *contexts = @[@"First", @"Second", @"Third", @"Fourth", @"Fifth"];
|
||||
[self presentControllerWithNames:controllerNames contexts:contexts];
|
||||
}
|
||||
|
||||
- (IBAction)menuItemTapped {
|
||||
NSLog(@"A menu item was tapped.");
|
||||
}
|
||||
|
||||
@end
|
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller displays device specific information to use for ensuring a great experience to the wearer of the WatchKit app.
|
||||
*/
|
||||
|
||||
@import WatchKit;
|
||||
|
||||
@interface AAPLDeviceDetailController : WKInterfaceController
|
||||
@end
|
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller displays device specific information to use for ensuring a great experience to the wearer of the WatchKit app.
|
||||
*/
|
||||
|
||||
#import "AAPLDeviceDetailController.h"
|
||||
|
||||
@interface AAPLDeviceDetailController()
|
||||
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceLabel *boundsLabel;
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceLabel *scaleLabel;
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceLabel *preferredContentSizeLabel;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation AAPLDeviceDetailController
|
||||
|
||||
- (instancetype)init {
|
||||
self = [super init];
|
||||
|
||||
if (self) {
|
||||
// Initialize variables here.
|
||||
// Configure interface objects here.
|
||||
|
||||
CGRect bounds = [[WKInterfaceDevice currentDevice] screenBounds];
|
||||
CGFloat scale = [[WKInterfaceDevice currentDevice] screenScale];
|
||||
|
||||
[self.boundsLabel setText:NSStringFromCGRect(bounds)];
|
||||
[self.scaleLabel setText:[NSString stringWithFormat:@"%f",scale]];
|
||||
[self.preferredContentSizeLabel setText:[[WKInterfaceDevice currentDevice] preferredContentSizeCategory]];
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)willActivate {
|
||||
// This method is called when the controller is about to be visible to the wearer.
|
||||
NSLog(@"%@ will activate", self);
|
||||
}
|
||||
|
||||
- (void)didDeactivate {
|
||||
// This method is called when the controller is no longer visible.
|
||||
NSLog(@"%@ did deactivate", self);
|
||||
}
|
||||
|
||||
@end
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This is the row controller for the default row type in the table of the initial interface controller.
|
||||
*/
|
||||
|
||||
@import WatchKit;
|
||||
|
||||
@interface AAPLElementRowController : NSObject
|
||||
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceLabel *elementLabel;
|
||||
|
||||
@end
|
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This is the row controller for the default row type in the table of the initial interface controller.
|
||||
*/
|
||||
|
||||
#import "AAPLElementRowController.h"
|
||||
|
||||
@implementation AAPLElementRowController
|
||||
@end
|
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller displays the Glance. It demonstrates passing information, via Handoff, to the WatchKit app to route the wearer to the appropriate controller once the app is launched. Tapping on the Glance will launch the WatchKit app.
|
||||
*/
|
||||
|
||||
@import WatchKit;
|
||||
|
||||
@interface AAPLGlanceController : WKInterfaceController
|
||||
@end
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller displays the Glance. It demonstrates passing information, via Handoff, to the WatchKit app to route the wearer to the appropriate controller once the app is launched. Tapping on the Glance will launch the WatchKit app.
|
||||
*/
|
||||
|
||||
#import "AAPLGlanceController.h"
|
||||
|
||||
@interface AAPLGlanceController()
|
||||
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceImage *glanceImage;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation AAPLGlanceController
|
||||
|
||||
- (void)awakeWithContext:(id)context {
|
||||
// Load image from WatchKit Extension.
|
||||
[self.glanceImage setImage:[UIImage imageNamed:@"Walkway"]];
|
||||
}
|
||||
|
||||
- (void)willActivate {
|
||||
// This method is called when the controller is about to be visible to the wearer.
|
||||
NSLog(@"%@ will activate", self);
|
||||
|
||||
// Use Handoff to route the wearer to the image detail controller when the Glance is tapped.
|
||||
[self updateUserActivity:@"com.example.apple-samplecode.WatchKit-Catalog" userInfo:@{@"controllerName": @"imageDetailController", @"detailInfo": @"This is some more detailed information to pass."} webpageURL:nil];
|
||||
}
|
||||
|
||||
- (void)didDeactivate {
|
||||
// This method is called when the controller is no longer visible.
|
||||
NSLog(@"%@ did deactivate", self);
|
||||
}
|
||||
|
||||
@end
|
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller displays groups in various configurations. This controller demonstrates sophisticated layouts using nested groups.
|
||||
*/
|
||||
|
||||
@import WatchKit;
|
||||
|
||||
@interface AAPLGroupDetailController : WKInterfaceController
|
||||
@end
|
|
@ -0,0 +1,23 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller displays groups in various configurations. This controller demonstrates sophisticated layouts using nested groups.
|
||||
*/
|
||||
|
||||
#import "AAPLGroupDetailController.h"
|
||||
|
||||
@implementation AAPLGroupDetailController
|
||||
|
||||
- (void)willActivate {
|
||||
// This method is called when the controller is about to be visible to the wearer.
|
||||
NSLog(@"%@ will activate", self);
|
||||
}
|
||||
|
||||
- (void)didDeactivate {
|
||||
// This method is called when the controller is no longer visible.
|
||||
NSLog(@"%@ did deactivate", self);
|
||||
}
|
||||
|
||||
@end
|
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller displays images, static and animated. It demonstrates using the image cache to send images from the WatchKit app extension bundle to be stored and used in the WatchKit app bundle. It also demonstrates how to use screenBounds to use the most appropriate sized image for the device at runtime. Finally, this controller demonstrates loading images from the WatchKit Extension bundle and from the WatchKit app bundle.
|
||||
*/
|
||||
|
||||
@import WatchKit;
|
||||
|
||||
@interface AAPLImageDetailController : WKInterfaceController
|
||||
@end
|
|
@ -0,0 +1,69 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller displays images, static and animated. It demonstrates using the image cache to send images from the WatchKit app extension bundle to be stored and used in the WatchKit app bundle. It also demonstrates how to use screenBounds to use the most appropriate sized image for the device at runtime. Finally, this controller demonstrates loading images from the WatchKit Extension bundle and from the WatchKit app bundle.
|
||||
*/
|
||||
|
||||
#import "AAPLImageDetailController.h"
|
||||
|
||||
@interface AAPLImageDetailController()
|
||||
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceImage *cachedImage;
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceImage *staticImage;
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceImage *animatedImage;
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceButton *playButton;
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceButton *stopButton;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation AAPLImageDetailController
|
||||
|
||||
- (void)awakeWithContext:(id)context {
|
||||
// Log the context passed in, if the wearer arrived at this controller via the sample's Glance.
|
||||
NSLog(@"Passed in context: %@", context);
|
||||
|
||||
// Add image to image cache and then use the cached image.
|
||||
UIImage *image = [UIImage imageNamed:@"Bumblebee"];
|
||||
if([[WKInterfaceDevice currentDevice] addCachedImage:image name:@"Bumblebee"] == NO) {
|
||||
NSLog(@"Image cache full.");
|
||||
}
|
||||
else {
|
||||
[self.cachedImage setImageNamed:@"Bumblebee"];
|
||||
}
|
||||
|
||||
// Log what's currently residing in the image cache.
|
||||
NSLog(@"Currently cached images: %@", [WKInterfaceDevice currentDevice].cachedImages);
|
||||
|
||||
// Uses image in WatchKit Extension bundle.
|
||||
NSData *imageData = UIImagePNGRepresentation([UIImage imageNamed:@"Walkway"]);
|
||||
|
||||
[self.staticImage setImageData:imageData];
|
||||
}
|
||||
|
||||
- (void)willActivate {
|
||||
// This method is called when the controller is about to be visible to the wearer.
|
||||
NSLog(@"%@ will activate", self);
|
||||
}
|
||||
|
||||
- (void)didDeactivate {
|
||||
// This method is called when the controller is no longer visible.
|
||||
NSLog(@"%@ did deactivate", self);
|
||||
}
|
||||
|
||||
- (IBAction)playAnimation {
|
||||
// Uses images in WatchKit app bundle.
|
||||
[self.animatedImage setImageNamed:@"Bus"];
|
||||
[self.animatedImage startAnimating];
|
||||
|
||||
// Animate with a specific range, duration, and repeat count.
|
||||
// [self.animatedImage startAnimatingWithImagesInRange:NSMakeRange(0, 4) duration:2.0 repeatCount:3];
|
||||
}
|
||||
|
||||
- (IBAction)stopAnimation {
|
||||
[self.animatedImage stopAnimating];
|
||||
}
|
||||
|
||||
@end
|
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This is the initial interface controller for the WatchKit app. It loads the initial table of the app with data and responds to Handoff launching the WatchKit app.
|
||||
*/
|
||||
|
||||
@import WatchKit;
|
||||
|
||||
@interface AAPLInterfaceController : WKInterfaceController
|
||||
@end
|
|
@ -0,0 +1,71 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This is the initial interface controller for the WatchKit app. It loads the initial table of the app with data and responds to Handoff launching the WatchKit app.
|
||||
*/
|
||||
|
||||
#import "AAPLInterfaceController.h"
|
||||
#import "AAPLElementRowController.h"
|
||||
|
||||
@interface AAPLInterfaceController()
|
||||
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceTable *interfaceTable;
|
||||
|
||||
@property (strong, nonatomic) NSArray *elementsList;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation AAPLInterfaceController
|
||||
|
||||
- (instancetype)init {
|
||||
self = [super init];
|
||||
|
||||
if (self) {
|
||||
// Initialize variables here.
|
||||
// Configure interface objects here.
|
||||
|
||||
// Retrieve the data. This could be accessed from the iOS app via a shared container.
|
||||
self.elementsList = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"AppData" ofType:@"plist"]];
|
||||
|
||||
[self loadTableRows];
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)willActivate {
|
||||
// This method is called when the controller is about to be visible to the wearer.
|
||||
NSLog(@"%@ will activate", self);
|
||||
}
|
||||
|
||||
- (void)didDeactivate {
|
||||
// This method is called when the controller is no longer visible.
|
||||
NSLog(@"%@ did deactivate", self);
|
||||
}
|
||||
|
||||
- (void)handleUserActivity:(NSDictionary *)userInfo {
|
||||
// Use data from the userInfo dictionary passed in to push to the appropriate controller with detailed info.
|
||||
[self pushControllerWithName:userInfo[@"controllerName"] context:userInfo[@"detailInfo"]];
|
||||
}
|
||||
|
||||
- (void)table:(WKInterfaceTable *)table didSelectRowAtIndex:(NSInteger)rowIndex {
|
||||
NSDictionary *rowData = self.elementsList[rowIndex];
|
||||
|
||||
[self pushControllerWithName:rowData[@"controllerIdentifier"] context:nil];
|
||||
}
|
||||
|
||||
- (void)loadTableRows {
|
||||
[self.interfaceTable setNumberOfRows:self.elementsList.count withRowType:@"default"];
|
||||
|
||||
// Create all of the table rows.
|
||||
[self.elementsList enumerateObjectsUsingBlock:^(NSDictionary *rowData, NSUInteger idx, BOOL *stop) {
|
||||
AAPLElementRowController *elementRow = [self.interfaceTable rowControllerAtIndex:idx];
|
||||
|
||||
[elementRow.elementLabel setText:rowData[@"label"]];
|
||||
}];
|
||||
}
|
||||
|
||||
@end
|
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller displays labels and specialized labels (Date and Timer).
|
||||
*/
|
||||
|
||||
@import WatchKit;
|
||||
|
||||
@interface AAPLLabelDetailController : WKInterfaceController
|
||||
@end
|
|
@ -0,0 +1,57 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller displays labels and specialized labels (Date and Timer).
|
||||
*/
|
||||
|
||||
#import "AAPLLabelDetailController.h"
|
||||
|
||||
@interface AAPLLabelDetailController()
|
||||
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceLabel *coloredLabel;
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceLabel *ultralightLabel;
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceTimer *timer;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation AAPLLabelDetailController
|
||||
|
||||
- (instancetype)init {
|
||||
self = [super init];
|
||||
|
||||
if (self) {
|
||||
// Initialize variables here.
|
||||
// Configure interface objects here.
|
||||
|
||||
[self.coloredLabel setTextColor:[UIColor purpleColor]];
|
||||
|
||||
UIFont *font = [UIFont systemFontOfSize:16.0 weight:UIFontWeightUltraLight];
|
||||
NSDictionary *attrsDictionary = [NSDictionary dictionaryWithObject:font forKey:NSFontAttributeName];
|
||||
NSAttributedString *attrString = [[NSAttributedString alloc] initWithString:@"Ultralight Label" attributes:attrsDictionary];
|
||||
[self.ultralightLabel setAttributedText:attrString];
|
||||
|
||||
NSDateComponents *components = [[NSDateComponents alloc] init];
|
||||
[components setDay:10];
|
||||
[components setMonth:12];
|
||||
[components setYear:2015];
|
||||
[self.timer setDate:[[NSCalendar currentCalendar] dateFromComponents:components]];
|
||||
[self.timer start];
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)willActivate {
|
||||
// This method is called when the controller is about to be visible to the wearer.
|
||||
NSLog(@"%@ will activate", self);
|
||||
}
|
||||
|
||||
- (void)didDeactivate {
|
||||
// This method is called when the controller is no longer visible.
|
||||
NSLog(@"%@ did deactivate", self);
|
||||
}
|
||||
|
||||
@end
|
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller displays a map and demonstrates use of setting its coordinate region, zoom level, and addition and removal of annotations.
|
||||
*/
|
||||
|
||||
@import WatchKit;
|
||||
|
||||
@interface AAPLMapDetailController : WKInterfaceController
|
||||
@end
|
|
@ -0,0 +1,120 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller displays a map and demonstrates use of setting its coordinate region, zoom level, and addition and removal of annotations.
|
||||
*/
|
||||
|
||||
#import "AAPLMapDetailController.h"
|
||||
|
||||
@interface AAPLMapDetailController()
|
||||
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceMap *map;
|
||||
@property (nonatomic) MKCoordinateRegion currentRegion;
|
||||
@property (nonatomic) MKCoordinateSpan currentSpan;
|
||||
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceButton *appleButton;
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceButton *tokyoButton;
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceButton *inButton;
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceButton *outButton;
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceButton *pinsButton;
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceButton *imagesButton;
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceButton *removeAllButton;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation AAPLMapDetailController
|
||||
|
||||
- (instancetype)init {
|
||||
self = [super init];
|
||||
|
||||
if (self) {
|
||||
// Initialize variables here.
|
||||
// Configure interface objects here.
|
||||
|
||||
_currentSpan = MKCoordinateSpanMake(1.0f, 1.0f);
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)willActivate {
|
||||
// This method is called when the controller is about to be visible to the wearer.
|
||||
NSLog(@"%@ will activate", self);
|
||||
|
||||
[self goToApple];
|
||||
}
|
||||
|
||||
- (void)didDeactivate {
|
||||
// This method is called when the controller is no longer visible.
|
||||
NSLog(@"%@ did deactivate", self);
|
||||
}
|
||||
|
||||
- (IBAction)goToTokyo {
|
||||
CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake(35.4f, 139.4f);
|
||||
|
||||
[self setMapToCoordinate:coordinate];
|
||||
}
|
||||
|
||||
- (IBAction)goToApple {
|
||||
CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake(37.331793f, -122.029584f);
|
||||
|
||||
[self setMapToCoordinate:coordinate];
|
||||
}
|
||||
|
||||
- (void)setMapToCoordinate:(CLLocationCoordinate2D)coordinate {
|
||||
MKCoordinateRegion region = MKCoordinateRegionMake(coordinate, self.currentSpan);
|
||||
self.currentRegion = region;
|
||||
|
||||
MKMapPoint newCenterPoint = MKMapPointForCoordinate(coordinate);
|
||||
|
||||
[self.map setVisibleMapRect:MKMapRectMake(newCenterPoint.x, newCenterPoint.y, self.currentSpan.latitudeDelta, self.currentSpan.longitudeDelta)];
|
||||
[self.map setRegion:region];
|
||||
}
|
||||
|
||||
- (IBAction)zoomOut {
|
||||
MKCoordinateSpan span = MKCoordinateSpanMake(self.currentSpan.latitudeDelta * 2, self.currentSpan.longitudeDelta * 2);
|
||||
MKCoordinateRegion region = MKCoordinateRegionMake(self.currentRegion.center, span);
|
||||
|
||||
self.currentSpan = span;
|
||||
[self.map setRegion:region];
|
||||
}
|
||||
|
||||
- (IBAction)zoomIn {
|
||||
MKCoordinateSpan span = MKCoordinateSpanMake(self.currentSpan.latitudeDelta * 0.5f, self.currentSpan.longitudeDelta * 0.5f);
|
||||
MKCoordinateRegion region = MKCoordinateRegionMake(self.currentRegion.center, span);
|
||||
|
||||
self.currentSpan = span;
|
||||
[self.map setRegion:region];
|
||||
}
|
||||
|
||||
- (IBAction)addPinAnnotations {
|
||||
[self.map addAnnotation:self.currentRegion.center withPinColor:WKInterfaceMapPinColorRed];
|
||||
|
||||
CLLocationCoordinate2D greenCoordinate = CLLocationCoordinate2DMake(self.currentRegion.center.latitude, self.currentRegion.center.longitude - 0.3f);
|
||||
[self.map addAnnotation:greenCoordinate withPinColor:WKInterfaceMapPinColorGreen];
|
||||
|
||||
CLLocationCoordinate2D purpleCoordinate = CLLocationCoordinate2DMake(self.currentRegion.center.latitude, self.currentRegion.center.longitude + 0.3f);
|
||||
[self.map addAnnotation:purpleCoordinate withPinColor:WKInterfaceMapPinColorPurple];
|
||||
}
|
||||
|
||||
- (IBAction)addImageAnnotations {
|
||||
CLLocationCoordinate2D firstCoordinate = CLLocationCoordinate2DMake(self.currentRegion.center.latitude, self.currentRegion.center.longitude - 0.3f);
|
||||
|
||||
// Uses image in WatchKit app bundle.
|
||||
[self.map addAnnotation:firstCoordinate withImageNamed:@"Whale" centerOffset:CGPointZero];
|
||||
|
||||
CLLocationCoordinate2D secondCoordinate = CLLocationCoordinate2DMake(self.currentRegion.center.latitude, self.currentRegion.center.longitude + 0.3f);
|
||||
|
||||
// Uses image in WatchKit Extension bundle.
|
||||
UIImage *image = [UIImage imageNamed:@"Bumblebee"];
|
||||
[self.map addAnnotation:secondCoordinate withImage:image centerOffset:CGPointZero];
|
||||
}
|
||||
|
||||
- (IBAction)removeAll {
|
||||
[self.map removeAllAnnotations];
|
||||
}
|
||||
|
||||
@end
|
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller handles displaying a custom or static notification.
|
||||
*/
|
||||
|
||||
@import WatchKit;
|
||||
|
||||
@interface AAPLNotificationController : WKUserNotificationInterfaceController
|
||||
@end
|
|
@ -0,0 +1,60 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller handles displaying a custom or static notification.
|
||||
*/
|
||||
|
||||
#import "AAPLNotificationController.h"
|
||||
|
||||
@implementation AAPLNotificationController
|
||||
|
||||
- (instancetype)init {
|
||||
self = [super init];
|
||||
|
||||
if (self) {
|
||||
// Initialize variables here.
|
||||
// Configure interface objects here.
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)willActivate {
|
||||
// This method is called when the controller is about to be visible to the wearer.
|
||||
NSLog(@"%@ will activate", self);
|
||||
}
|
||||
|
||||
- (void)didDeactivate {
|
||||
// This method is called when the controller is no longer visible.
|
||||
NSLog(@"%@ did deactivate", self);
|
||||
}
|
||||
|
||||
/*
|
||||
- (void)didReceiveLocalNotification:(UILocalNotification *)localNotification withCompletion:(void (^)(WKUserNotificationInterfaceType))completionHandler {
|
||||
// This method is called when a local notification needs to be presented.
|
||||
// Implement it if you use a dynamic glance interface.
|
||||
// Populate your dynamic glance inteface as quickly as possible.
|
||||
//
|
||||
// After populating your dynamic glance interface call the completion block.
|
||||
completionHandler(WKUserNotificationInterfaceTypeCustom);
|
||||
}
|
||||
*/
|
||||
|
||||
- (void)didReceiveRemoteNotification:(NSDictionary *)remoteNotification withCompletion:(void (^)(WKUserNotificationInterfaceType))completionHandler {
|
||||
// This method is called when a remote notification needs to be presented.
|
||||
// Implement it if you use a dynamic glance interface.
|
||||
// Populate your dynamic glance inteface as quickly as possible.
|
||||
//
|
||||
// After populating your dynamic glance interface call the completion block.
|
||||
completionHandler(WKUserNotificationInterfaceTypeCustom);
|
||||
|
||||
// Use the following constant to display the static notification.
|
||||
//completionHandler(WKUserNotificationInterfaceTypeDefault);
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller represents a single page of the modal page-based navigation controller, presented in AAPLControllerDetailController.
|
||||
*/
|
||||
|
||||
@import WatchKit;
|
||||
|
||||
@interface AAPLPageController : WKInterfaceController
|
||||
@end
|
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller represents a single page of the modal page-based navigation controller, presented in AAPLControllerDetailController.
|
||||
*/
|
||||
|
||||
#import "AAPLPageController.h"
|
||||
|
||||
@interface AAPLPageController()
|
||||
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceLabel *pageLabel;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation AAPLPageController
|
||||
|
||||
- (void)awakeWithContext:(id)context {
|
||||
[self.pageLabel setText:[NSString stringWithFormat:@"%@ Page", context]];
|
||||
}
|
||||
|
||||
- (void)willActivate {
|
||||
// This method is called when the controller is about to be visible to the wearer.
|
||||
NSLog(@"%@ will activate", self);
|
||||
}
|
||||
|
||||
- (void)didDeactivate {
|
||||
// This method is called when the controller is no longer visible.
|
||||
NSLog(@"%@ did deactivate", self);
|
||||
}
|
||||
|
||||
@end
|
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller displays separators and how to visually break up content onscreen.
|
||||
*/
|
||||
|
||||
@import WatchKit;
|
||||
|
||||
@interface AAPLSeparatorDetailController : WKInterfaceController
|
||||
@end
|
|
@ -0,0 +1,23 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller displays separators and how to visually break up content onscreen.
|
||||
*/
|
||||
|
||||
#import "AAPLSeparatorDetailController.h"
|
||||
|
||||
@implementation AAPLSeparatorDetailController
|
||||
|
||||
- (void)willActivate {
|
||||
// This method is called when the controller is about to be visible to the wearer.
|
||||
NSLog(@"%@ will activate", self);
|
||||
}
|
||||
|
||||
- (void)didDeactivate {
|
||||
// This method is called when the controller is no longer visible.
|
||||
NSLog(@"%@ did deactivate", self);
|
||||
}
|
||||
|
||||
@end
|
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller displays sliders and their various configurations.
|
||||
*/
|
||||
|
||||
@import WatchKit;
|
||||
|
||||
@interface AAPLSliderDetailController : WKInterfaceController
|
||||
@end
|
|
@ -0,0 +1,47 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller displays sliders and their various configurations.
|
||||
*/
|
||||
|
||||
#import "AAPLSliderDetailController.h"
|
||||
|
||||
@interface AAPLSliderDetailController()
|
||||
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceSlider *coloredSlider;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation AAPLSliderDetailController
|
||||
|
||||
- (instancetype)init {
|
||||
self = [super init];
|
||||
|
||||
if (self) {
|
||||
// Initialize variables here.
|
||||
// Configure interface objects here.
|
||||
|
||||
[self.coloredSlider setColor:[UIColor redColor]];
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)willActivate {
|
||||
// This method is called when the controller is about to be visible to the wearer.
|
||||
NSLog(@"%@ will activate", self);
|
||||
}
|
||||
|
||||
- (void)didDeactivate {
|
||||
// This method is called when the controller is no longer visible.
|
||||
NSLog(@"%@ did deactivate", self);
|
||||
}
|
||||
|
||||
- (IBAction)sliderAction:(float)value {
|
||||
NSLog(@"Slider value is now: %f", value);
|
||||
}
|
||||
|
||||
@end
|
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller displays switches and their various configurations.
|
||||
*/
|
||||
|
||||
@import WatchKit;
|
||||
|
||||
@interface AAPLSwitchDetailController : WKInterfaceController
|
||||
@end
|
|
@ -0,0 +1,52 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller displays switches and their various configurations.
|
||||
*/
|
||||
|
||||
#import "AAPLSwitchDetailController.h"
|
||||
|
||||
@interface AAPLSwitchDetailController()
|
||||
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceSwitch *offSwitch;
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceSwitch *coloredSwitch;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation AAPLSwitchDetailController
|
||||
|
||||
- (instancetype)init {
|
||||
self = [super init];
|
||||
|
||||
if (self) {
|
||||
// Initialize variables here.
|
||||
// Configure interface objects here.
|
||||
|
||||
[self.offSwitch setOn:NO];
|
||||
|
||||
[self.coloredSwitch setColor:[UIColor blueColor]];
|
||||
[self.coloredSwitch setTitle:@"Blue Switch"];
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)willActivate {
|
||||
// This method is called when the controller is about to be visible to the wearer.
|
||||
NSLog(@"%@ will activate", self);
|
||||
}
|
||||
|
||||
- (void)didDeactivate {
|
||||
// This method is called when the controller is no longer visible.
|
||||
NSLog(@"%@ did deactivate", self);
|
||||
}
|
||||
|
||||
- (IBAction)switchAction:(BOOL)on {
|
||||
NSLog(@"Switch value changed to %i.", on);
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller displays a table with rows. This controller demonstrates how to insert rows after the intial set of rows has been added and displayed.
|
||||
*/
|
||||
|
||||
@import WatchKit;
|
||||
|
||||
@interface AAPLTableDetailController : WKInterfaceController
|
||||
@end
|
|
@ -0,0 +1,77 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller displays a table with rows. This controller demonstrates how to insert rows after the intial set of rows has been added and displayed.
|
||||
*/
|
||||
|
||||
#import "AAPLTableDetailController.h"
|
||||
#import "AAPLTableRowController.h"
|
||||
|
||||
@interface AAPLTableDetailController()
|
||||
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceTable *interfaceTable;
|
||||
@property (strong, nonatomic) NSArray *cityNames;
|
||||
|
||||
@end
|
||||
|
||||
@implementation AAPLTableDetailController
|
||||
|
||||
- (instancetype)init {
|
||||
self = [super init];
|
||||
|
||||
if (self) {
|
||||
// Initialize variables here.
|
||||
// Configure interface objects here.
|
||||
|
||||
[self loadTableData];
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)willActivate {
|
||||
// This method is called when the controller is about to be visible to the wearer.
|
||||
NSLog(@"%@ will activate", self);
|
||||
}
|
||||
|
||||
- (void)didDeactivate {
|
||||
// This method is called when the controller is no longer visible.
|
||||
NSLog(@"%@ did deactivate", self);
|
||||
}
|
||||
|
||||
- (void)loadTableData {
|
||||
self.cityNames = @[@"Cupertino", @"Sunnyvale", @"Campbell", @"Morgan Hill", @"Mountain View"];
|
||||
|
||||
[self.interfaceTable setNumberOfRows:self.cityNames.count withRowType:@"default"];
|
||||
|
||||
[self.cityNames enumerateObjectsUsingBlock:^(NSString *citName, NSUInteger idx, BOOL *stop) {
|
||||
AAPLTableRowController *row = [self.interfaceTable rowControllerAtIndex:idx];
|
||||
|
||||
[row.rowLabel setText:citName];
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)table:(WKInterfaceTable *)table didSelectRowAtIndex:(NSInteger)rowIndex {
|
||||
NSArray *newCityNames = @[@"Saratoga", @"San Jose"];
|
||||
|
||||
NSIndexSet *newCityIndexes = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(rowIndex + 1, newCityNames.count)];
|
||||
|
||||
// Insert new rows into the table.
|
||||
[self.interfaceTable insertRowsAtIndexes:newCityIndexes withRowType:@"default"];
|
||||
|
||||
// Update the rows that were just inserted with the appropriate data.
|
||||
__block NSInteger newCityNumber = 0;
|
||||
[newCityIndexes enumerateIndexesUsingBlock:^(NSUInteger idx, BOOL *stop) {
|
||||
NSString *newCityName = newCityNames[newCityNumber];
|
||||
|
||||
AAPLTableRowController *row = [self.interfaceTable rowControllerAtIndex:idx];
|
||||
|
||||
[row.rowLabel setText:newCityName];
|
||||
|
||||
newCityNumber++;
|
||||
}];
|
||||
}
|
||||
|
||||
@end
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This is the row controller for the default row type in the table of the table detail controller.
|
||||
*/
|
||||
|
||||
@import WatchKit;
|
||||
|
||||
@interface AAPLTableRowController : NSObject
|
||||
|
||||
@property (weak, nonatomic) IBOutlet WKInterfaceLabel *rowLabel;
|
||||
|
||||
@end
|
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This is the row controller for the default row type in the table of the table detail controller.
|
||||
*/
|
||||
|
||||
#import "AAPLTableRowController.h"
|
||||
|
||||
@implementation AAPLTableRowController
|
||||
@end
|
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller demonstrates using the Text Input Controller.
|
||||
*/
|
||||
|
||||
@import WatchKit;
|
||||
|
||||
@interface AAPLTextInputController : WKInterfaceController
|
||||
@end
|
|
@ -0,0 +1,44 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
This controller demonstrates using the Text Input Controller.
|
||||
*/
|
||||
|
||||
#import "AAPLTextInputController.h"
|
||||
|
||||
|
||||
@implementation AAPLTextInputController
|
||||
|
||||
- (void)willActivate {
|
||||
// This method is called when watch view controller is about to be visible to user
|
||||
NSLog(@"%@ will activate", self);
|
||||
}
|
||||
|
||||
- (void)didDeactivate {
|
||||
// This method is called when watch view controller is no longer visible
|
||||
NSLog(@"%@ did deactivate", self);
|
||||
}
|
||||
|
||||
- (IBAction)replyWithTextInputController {
|
||||
// Using the WKTextInputMode enum, you can specify which aspects of the Text Input Controller are shown when presented.
|
||||
[self presentTextInputControllerWithSuggestions:@[@"Yes", @"No", @"Maybe"] allowedInputMode:WKTextInputModeAllowEmoji completion:^(NSArray *results) {
|
||||
NSLog(@"Text Input Results: %@", results);
|
||||
|
||||
if (results[0] != nil) {
|
||||
// Sends a non-nil result to the parent iOS application.
|
||||
BOOL didOpenParent = [WKInterfaceController openParentApplication:@{@"TextInput" : results[0]} reply:^(NSDictionary *replyInfo, NSError *error) {
|
||||
NSLog(@"Reply Info: %@", replyInfo);
|
||||
NSLog(@"Error: %@", [error localizedDescription]);
|
||||
}];
|
||||
|
||||
NSLog(@"Did open parent application? %i", didOpenParent);
|
||||
}
|
||||
}];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<array>
|
||||
<dict>
|
||||
<key>label</key>
|
||||
<string>Label</string>
|
||||
<key>controllerIdentifier</key>
|
||||
<string>labelDetailController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>label</key>
|
||||
<string>Button</string>
|
||||
<key>controllerIdentifier</key>
|
||||
<string>buttonDetailController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>label</key>
|
||||
<string>Switch</string>
|
||||
<key>controllerIdentifier</key>
|
||||
<string>switchDetailController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>label</key>
|
||||
<string>Slider</string>
|
||||
<key>controllerIdentifier</key>
|
||||
<string>sliderDetailController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>label</key>
|
||||
<string>Image</string>
|
||||
<key>controllerIdentifier</key>
|
||||
<string>imageDetailController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>label</key>
|
||||
<string>Separator</string>
|
||||
<key>controllerIdentifier</key>
|
||||
<string>separatorDetailController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>label</key>
|
||||
<string>Map</string>
|
||||
<key>controllerIdentifier</key>
|
||||
<string>mapDetailController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>label</key>
|
||||
<string>Group</string>
|
||||
<key>controllerIdentifier</key>
|
||||
<string>groupDetailController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>label</key>
|
||||
<string>Table</string>
|
||||
<key>controllerIdentifier</key>
|
||||
<string>tableDetailController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>label</key>
|
||||
<string>Device</string>
|
||||
<key>controllerIdentifier</key>
|
||||
<string>deviceDetailController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>label</key>
|
||||
<string>Controller</string>
|
||||
<key>controllerIdentifier</key>
|
||||
<string>controllerDetailController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>label</key>
|
||||
<string>Text Input</string>
|
||||
<key>controllerIdentifier</key>
|
||||
<string>textInputDetailController</string>
|
||||
</dict>
|
||||
</array>
|
||||
</plist>
|
After Width: | Height: | Size: 16 KiB |
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"filename" : "Bumblebee@2x.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 208 KiB |
After Width: | Height: | Size: 274 KiB |
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"screenWidth" : "{130,145}",
|
||||
"filename" : "38mm-Walkway@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "watch",
|
||||
"screenWidth" : "{146,165}",
|
||||
"filename" : "42mm-Walkway@2x.png",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>Catalog</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.example.apple-samplecode.WatchKit-Catalog.watchkitextension</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Catalog</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>NSExtension</key>
|
||||
<dict>
|
||||
<key>NSExtensionAttributes</key>
|
||||
<dict>
|
||||
<key>WKAppBundleIdentifier</key>
|
||||
<string>com.example.apple-samplecode.WatchKit-Catalog.watchkitapp</string>
|
||||
</dict>
|
||||
<key>NSExtensionPointIdentifier</key>
|
||||
<string>com.apple.watchkit</string>
|
||||
</dict>
|
||||
<key>RemoteInterfacePrincipalClass</key>
|
||||
<string>InterfaceController</string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"aps": {
|
||||
"alert": {
|
||||
"body": "Test message",
|
||||
"title": "Optional title"
|
||||
},
|
||||
"category": "myCategory"
|
||||
},
|
||||
|
||||
"WatchKit Simulator Actions": [
|
||||
{
|
||||
"title": "First Button",
|
||||
"identifier": "firstButtonAction"
|
||||
}
|
||||
],
|
||||
|
||||
"customKey": "Use this file to define a testing payload for your notifications. The aps dictionary specifies the category, alert text and title. The WatchKit Simulator Actions array can provide info for one or more action buttons in addition to the standard Dismiss button. Any other top level keys are custom payload. If you have multiple such JSON files in your project, you'll be able to select them when choosing to debug the notification interface of your Watch App."
|
||||
}
|
|
@ -0,0 +1,688 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
CB2698C21A3667CE00D75212 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = CB2698C11A3667CE00D75212 /* main.m */; };
|
||||
CB2698F81A3667DA00D75212 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CB2698F71A3667DA00D75212 /* Images.xcassets */; };
|
||||
CB2698FC1A3667DA00D75212 /* WatchKit Catalog WatchKit App.app in Resources */ = {isa = PBXBuildFile; fileRef = CB2698FB1A3667DA00D75212 /* WatchKit Catalog WatchKit App.app */; };
|
||||
CB2699051A3667DA00D75212 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CB2699041A3667DA00D75212 /* Images.xcassets */; };
|
||||
CB2699081A3667DA00D75212 /* WatchKit Catalog WatchKit Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = CB2698E91A3667DA00D75212 /* WatchKit Catalog WatchKit Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||
CB2699111A36684E00D75212 /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = CB2699101A36684E00D75212 /* Interface.storyboard */; };
|
||||
CB2699131A36686E00D75212 /* AppData.plist in Resources */ = {isa = PBXBuildFile; fileRef = CB2699121A36686E00D75212 /* AppData.plist */; };
|
||||
CB26992A1A36689B00D75212 /* AAPLLabelDetailController.m in Sources */ = {isa = PBXBuildFile; fileRef = CB2699151A36689B00D75212 /* AAPLLabelDetailController.m */; };
|
||||
CB26992B1A36689B00D75212 /* AAPLButtonDetailController.m in Sources */ = {isa = PBXBuildFile; fileRef = CB2699171A36689B00D75212 /* AAPLButtonDetailController.m */; };
|
||||
CB26992C1A36689B00D75212 /* AAPLSwitchDetailController.m in Sources */ = {isa = PBXBuildFile; fileRef = CB2699191A36689B00D75212 /* AAPLSwitchDetailController.m */; };
|
||||
CB26992D1A36689B00D75212 /* AAPLSliderDetailController.m in Sources */ = {isa = PBXBuildFile; fileRef = CB26991B1A36689B00D75212 /* AAPLSliderDetailController.m */; };
|
||||
CB26992E1A36689B00D75212 /* AAPLImageDetailController.m in Sources */ = {isa = PBXBuildFile; fileRef = CB26991D1A36689B00D75212 /* AAPLImageDetailController.m */; };
|
||||
CB26992F1A36689B00D75212 /* AAPLSeparatorDetailController.m in Sources */ = {isa = PBXBuildFile; fileRef = CB26991F1A36689B00D75212 /* AAPLSeparatorDetailController.m */; };
|
||||
CB2699301A36689B00D75212 /* AAPLMapDetailController.m in Sources */ = {isa = PBXBuildFile; fileRef = CB2699211A36689B00D75212 /* AAPLMapDetailController.m */; };
|
||||
CB2699311A36689B00D75212 /* AAPLGroupDetailController.m in Sources */ = {isa = PBXBuildFile; fileRef = CB2699231A36689B00D75212 /* AAPLGroupDetailController.m */; };
|
||||
CB2699321A36689B00D75212 /* AAPLDeviceDetailController.m in Sources */ = {isa = PBXBuildFile; fileRef = CB2699251A36689B00D75212 /* AAPLDeviceDetailController.m */; };
|
||||
CB2699331A36689B00D75212 /* AAPLControllerDetailController.m in Sources */ = {isa = PBXBuildFile; fileRef = CB2699271A36689B00D75212 /* AAPLControllerDetailController.m */; };
|
||||
CB2699341A36689B00D75212 /* AAPLPageController.m in Sources */ = {isa = PBXBuildFile; fileRef = CB2699291A36689B00D75212 /* AAPLPageController.m */; };
|
||||
CB2699391A3668AF00D75212 /* AAPLInterfaceController.m in Sources */ = {isa = PBXBuildFile; fileRef = CB2699361A3668AF00D75212 /* AAPLInterfaceController.m */; };
|
||||
CB26993A1A3668AF00D75212 /* AAPLElementRowController.m in Sources */ = {isa = PBXBuildFile; fileRef = CB2699381A3668AF00D75212 /* AAPLElementRowController.m */; };
|
||||
CB2699401A3668D400D75212 /* AAPLTableDetailController.m in Sources */ = {isa = PBXBuildFile; fileRef = CB26993D1A3668D400D75212 /* AAPLTableDetailController.m */; };
|
||||
CB2699411A3668D400D75212 /* AAPLTableRowController.m in Sources */ = {isa = PBXBuildFile; fileRef = CB26993F1A3668D400D75212 /* AAPLTableRowController.m */; };
|
||||
CB2699451A3668E600D75212 /* AAPLNotificationController.m in Sources */ = {isa = PBXBuildFile; fileRef = CB2699441A3668E600D75212 /* AAPLNotificationController.m */; };
|
||||
CB2699481A3668EE00D75212 /* AAPLGlanceController.m in Sources */ = {isa = PBXBuildFile; fileRef = CB2699471A3668EE00D75212 /* AAPLGlanceController.m */; };
|
||||
CB2699521A36692200D75212 /* AAPLAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CB26994E1A36692200D75212 /* AAPLAppDelegate.m */; };
|
||||
CB2699531A36692200D75212 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = CB26994F1A36692200D75212 /* Main.storyboard */; };
|
||||
CB2699541A36692200D75212 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CB2699501A36692200D75212 /* Images.xcassets */; };
|
||||
CB2699551A36692200D75212 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = CB2699511A36692200D75212 /* LaunchScreen.xib */; };
|
||||
CBBB02831A37582C00F16DE6 /* AAPLTextInputController.m in Sources */ = {isa = PBXBuildFile; fileRef = CBBB02821A37582C00F16DE6 /* AAPLTextInputController.m */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
CB2698FD1A3667DA00D75212 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = CB2698B41A3667CE00D75212 /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = CB2698FA1A3667DA00D75212;
|
||||
remoteInfo = "WatchKit Catalog WatchKit App";
|
||||
};
|
||||
CB2699061A3667DA00D75212 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = CB2698B41A3667CE00D75212 /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = CB2698E81A3667DA00D75212;
|
||||
remoteInfo = "WatchKit Catalog WatchKit Extension";
|
||||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
CB26990F1A3667DA00D75212 /* Embed App Extensions */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = "";
|
||||
dstSubfolderSpec = 13;
|
||||
files = (
|
||||
CB2699081A3667DA00D75212 /* WatchKit Catalog WatchKit Extension.appex in Embed App Extensions */,
|
||||
);
|
||||
name = "Embed App Extensions";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
CB2698BC1A3667CE00D75212 /* WatchKit Catalog.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "WatchKit Catalog.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
CB2698C01A3667CE00D75212 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
CB2698C11A3667CE00D75212 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||
CB2698E91A3667DA00D75212 /* WatchKit Catalog WatchKit Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "WatchKit Catalog WatchKit Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
CB2698EC1A3667DA00D75212 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
CB2698F71A3667DA00D75212 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
|
||||
CB2698FB1A3667DA00D75212 /* WatchKit Catalog WatchKit App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "WatchKit Catalog WatchKit App.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
CB2699011A3667DA00D75212 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
CB2699041A3667DA00D75212 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
|
||||
CB2699101A36684E00D75212 /* Interface.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Interface.storyboard; sourceTree = "<group>"; };
|
||||
CB2699121A36686E00D75212 /* AppData.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = AppData.plist; sourceTree = "<group>"; };
|
||||
CB2699141A36689B00D75212 /* AAPLLabelDetailController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AAPLLabelDetailController.h; sourceTree = "<group>"; };
|
||||
CB2699151A36689B00D75212 /* AAPLLabelDetailController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = AAPLLabelDetailController.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
||||
CB2699161A36689B00D75212 /* AAPLButtonDetailController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AAPLButtonDetailController.h; sourceTree = "<group>"; };
|
||||
CB2699171A36689B00D75212 /* AAPLButtonDetailController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AAPLButtonDetailController.m; sourceTree = "<group>"; };
|
||||
CB2699181A36689B00D75212 /* AAPLSwitchDetailController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AAPLSwitchDetailController.h; sourceTree = "<group>"; };
|
||||
CB2699191A36689B00D75212 /* AAPLSwitchDetailController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AAPLSwitchDetailController.m; sourceTree = "<group>"; };
|
||||
CB26991A1A36689B00D75212 /* AAPLSliderDetailController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AAPLSliderDetailController.h; sourceTree = "<group>"; };
|
||||
CB26991B1A36689B00D75212 /* AAPLSliderDetailController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AAPLSliderDetailController.m; sourceTree = "<group>"; };
|
||||
CB26991C1A36689B00D75212 /* AAPLImageDetailController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = AAPLImageDetailController.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
|
||||
CB26991D1A36689B00D75212 /* AAPLImageDetailController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = AAPLImageDetailController.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
||||
CB26991E1A36689B00D75212 /* AAPLSeparatorDetailController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AAPLSeparatorDetailController.h; sourceTree = "<group>"; };
|
||||
CB26991F1A36689B00D75212 /* AAPLSeparatorDetailController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AAPLSeparatorDetailController.m; sourceTree = "<group>"; };
|
||||
CB2699201A36689B00D75212 /* AAPLMapDetailController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AAPLMapDetailController.h; sourceTree = "<group>"; };
|
||||
CB2699211A36689B00D75212 /* AAPLMapDetailController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = AAPLMapDetailController.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
||||
CB2699221A36689B00D75212 /* AAPLGroupDetailController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AAPLGroupDetailController.h; sourceTree = "<group>"; };
|
||||
CB2699231A36689B00D75212 /* AAPLGroupDetailController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AAPLGroupDetailController.m; sourceTree = "<group>"; };
|
||||
CB2699241A36689B00D75212 /* AAPLDeviceDetailController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = AAPLDeviceDetailController.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
|
||||
CB2699251A36689B00D75212 /* AAPLDeviceDetailController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = AAPLDeviceDetailController.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
||||
CB2699261A36689B00D75212 /* AAPLControllerDetailController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AAPLControllerDetailController.h; sourceTree = "<group>"; };
|
||||
CB2699271A36689B00D75212 /* AAPLControllerDetailController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AAPLControllerDetailController.m; sourceTree = "<group>"; };
|
||||
CB2699281A36689B00D75212 /* AAPLPageController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AAPLPageController.h; sourceTree = "<group>"; };
|
||||
CB2699291A36689B00D75212 /* AAPLPageController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AAPLPageController.m; sourceTree = "<group>"; };
|
||||
CB2699351A3668AF00D75212 /* AAPLInterfaceController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = AAPLInterfaceController.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
|
||||
CB2699361A3668AF00D75212 /* AAPLInterfaceController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = AAPLInterfaceController.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
||||
CB2699371A3668AF00D75212 /* AAPLElementRowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AAPLElementRowController.h; sourceTree = "<group>"; };
|
||||
CB2699381A3668AF00D75212 /* AAPLElementRowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AAPLElementRowController.m; sourceTree = "<group>"; };
|
||||
CB26993C1A3668D400D75212 /* AAPLTableDetailController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AAPLTableDetailController.h; sourceTree = "<group>"; };
|
||||
CB26993D1A3668D400D75212 /* AAPLTableDetailController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AAPLTableDetailController.m; sourceTree = "<group>"; };
|
||||
CB26993E1A3668D400D75212 /* AAPLTableRowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AAPLTableRowController.h; sourceTree = "<group>"; };
|
||||
CB26993F1A3668D400D75212 /* AAPLTableRowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AAPLTableRowController.m; sourceTree = "<group>"; };
|
||||
CB2699431A3668E600D75212 /* AAPLNotificationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AAPLNotificationController.h; sourceTree = "<group>"; };
|
||||
CB2699441A3668E600D75212 /* AAPLNotificationController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AAPLNotificationController.m; sourceTree = "<group>"; };
|
||||
CB2699461A3668EE00D75212 /* AAPLGlanceController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = AAPLGlanceController.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
|
||||
CB2699471A3668EE00D75212 /* AAPLGlanceController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = AAPLGlanceController.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
||||
CB26994B1A36690C00D75212 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; lineEnding = 0; path = README.md; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.markdown; };
|
||||
CB26994D1A36692200D75212 /* AAPLAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AAPLAppDelegate.h; sourceTree = "<group>"; };
|
||||
CB26994E1A36692200D75212 /* AAPLAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AAPLAppDelegate.m; sourceTree = "<group>"; };
|
||||
CB26994F1A36692200D75212 /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = "<group>"; };
|
||||
CB2699501A36692200D75212 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
|
||||
CB2699511A36692200D75212 /* LaunchScreen.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LaunchScreen.xib; sourceTree = "<group>"; };
|
||||
CBBB02811A37582C00F16DE6 /* AAPLTextInputController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AAPLTextInputController.h; sourceTree = "<group>"; };
|
||||
CBBB02821A37582C00F16DE6 /* AAPLTextInputController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AAPLTextInputController.m; sourceTree = "<group>"; };
|
||||
CBC4BE171A60307A007AC530 /* NotificationPayload.apns */ = {isa = PBXFileReference; lastKnownFileType = text; path = NotificationPayload.apns; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
CB2698B91A3667CE00D75212 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
CB2698E61A3667DA00D75212 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
CB2698B31A3667CE00D75212 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CB26994B1A36690C00D75212 /* README.md */,
|
||||
CB2698BE1A3667CE00D75212 /* WatchKit Catalog */,
|
||||
CB2698EA1A3667DA00D75212 /* WatchKit Catalog WatchKit Extension */,
|
||||
CB2698FF1A3667DA00D75212 /* WatchKit Catalog WatchKit App */,
|
||||
CB2698BD1A3667CE00D75212 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CB2698BD1A3667CE00D75212 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CB2698BC1A3667CE00D75212 /* WatchKit Catalog.app */,
|
||||
CB2698E91A3667DA00D75212 /* WatchKit Catalog WatchKit Extension.appex */,
|
||||
CB2698FB1A3667DA00D75212 /* WatchKit Catalog WatchKit App.app */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CB2698BE1A3667CE00D75212 /* WatchKit Catalog */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CB26994D1A36692200D75212 /* AAPLAppDelegate.h */,
|
||||
CB26994E1A36692200D75212 /* AAPLAppDelegate.m */,
|
||||
CB26994F1A36692200D75212 /* Main.storyboard */,
|
||||
CB2699501A36692200D75212 /* Images.xcassets */,
|
||||
CB2699511A36692200D75212 /* LaunchScreen.xib */,
|
||||
CB2698BF1A3667CE00D75212 /* Supporting Files */,
|
||||
);
|
||||
path = "WatchKit Catalog";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CB2698BF1A3667CE00D75212 /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CB2698C01A3667CE00D75212 /* Info.plist */,
|
||||
CB2698C11A3667CE00D75212 /* main.m */,
|
||||
);
|
||||
name = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CB2698EA1A3667DA00D75212 /* WatchKit Catalog WatchKit Extension */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CB26993B1A3668B600D75212 /* Initial Interface Controller */,
|
||||
CB2699141A36689B00D75212 /* AAPLLabelDetailController.h */,
|
||||
CB2699151A36689B00D75212 /* AAPLLabelDetailController.m */,
|
||||
CB2699161A36689B00D75212 /* AAPLButtonDetailController.h */,
|
||||
CB2699171A36689B00D75212 /* AAPLButtonDetailController.m */,
|
||||
CB2699181A36689B00D75212 /* AAPLSwitchDetailController.h */,
|
||||
CB2699191A36689B00D75212 /* AAPLSwitchDetailController.m */,
|
||||
CB26991A1A36689B00D75212 /* AAPLSliderDetailController.h */,
|
||||
CB26991B1A36689B00D75212 /* AAPLSliderDetailController.m */,
|
||||
CB26991C1A36689B00D75212 /* AAPLImageDetailController.h */,
|
||||
CB26991D1A36689B00D75212 /* AAPLImageDetailController.m */,
|
||||
CB26991E1A36689B00D75212 /* AAPLSeparatorDetailController.h */,
|
||||
CB26991F1A36689B00D75212 /* AAPLSeparatorDetailController.m */,
|
||||
CB2699201A36689B00D75212 /* AAPLMapDetailController.h */,
|
||||
CB2699211A36689B00D75212 /* AAPLMapDetailController.m */,
|
||||
CB2699221A36689B00D75212 /* AAPLGroupDetailController.h */,
|
||||
CB2699231A36689B00D75212 /* AAPLGroupDetailController.m */,
|
||||
CB2699421A3668D700D75212 /* Table Detail Controller */,
|
||||
CB2699241A36689B00D75212 /* AAPLDeviceDetailController.h */,
|
||||
CB2699251A36689B00D75212 /* AAPLDeviceDetailController.m */,
|
||||
CB2699261A36689B00D75212 /* AAPLControllerDetailController.h */,
|
||||
CB2699271A36689B00D75212 /* AAPLControllerDetailController.m */,
|
||||
CB2699281A36689B00D75212 /* AAPLPageController.h */,
|
||||
CB2699291A36689B00D75212 /* AAPLPageController.m */,
|
||||
CBBB02811A37582C00F16DE6 /* AAPLTextInputController.h */,
|
||||
CBBB02821A37582C00F16DE6 /* AAPLTextInputController.m */,
|
||||
CB2699491A3668F200D75212 /* Notifications */,
|
||||
CB26994A1A3668F900D75212 /* Glance */,
|
||||
CB2698F71A3667DA00D75212 /* Images.xcassets */,
|
||||
CB2698EB1A3667DA00D75212 /* Supporting Files */,
|
||||
);
|
||||
path = "WatchKit Catalog WatchKit Extension";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CB2698EB1A3667DA00D75212 /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CB2698EC1A3667DA00D75212 /* Info.plist */,
|
||||
CBC4BE171A60307A007AC530 /* NotificationPayload.apns */,
|
||||
CB2699121A36686E00D75212 /* AppData.plist */,
|
||||
);
|
||||
name = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CB2698FF1A3667DA00D75212 /* WatchKit Catalog WatchKit App */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CB2699101A36684E00D75212 /* Interface.storyboard */,
|
||||
CB2699041A3667DA00D75212 /* Images.xcassets */,
|
||||
CB2699001A3667DA00D75212 /* Supporting Files */,
|
||||
);
|
||||
path = "WatchKit Catalog WatchKit App";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CB2699001A3667DA00D75212 /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CB2699011A3667DA00D75212 /* Info.plist */,
|
||||
);
|
||||
name = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CB26993B1A3668B600D75212 /* Initial Interface Controller */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CB2699351A3668AF00D75212 /* AAPLInterfaceController.h */,
|
||||
CB2699361A3668AF00D75212 /* AAPLInterfaceController.m */,
|
||||
CB2699371A3668AF00D75212 /* AAPLElementRowController.h */,
|
||||
CB2699381A3668AF00D75212 /* AAPLElementRowController.m */,
|
||||
);
|
||||
name = "Initial Interface Controller";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CB2699421A3668D700D75212 /* Table Detail Controller */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CB26993C1A3668D400D75212 /* AAPLTableDetailController.h */,
|
||||
CB26993D1A3668D400D75212 /* AAPLTableDetailController.m */,
|
||||
CB26993E1A3668D400D75212 /* AAPLTableRowController.h */,
|
||||
CB26993F1A3668D400D75212 /* AAPLTableRowController.m */,
|
||||
);
|
||||
name = "Table Detail Controller";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CB2699491A3668F200D75212 /* Notifications */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CB2699431A3668E600D75212 /* AAPLNotificationController.h */,
|
||||
CB2699441A3668E600D75212 /* AAPLNotificationController.m */,
|
||||
);
|
||||
name = Notifications;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CB26994A1A3668F900D75212 /* Glance */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CB2699461A3668EE00D75212 /* AAPLGlanceController.h */,
|
||||
CB2699471A3668EE00D75212 /* AAPLGlanceController.m */,
|
||||
);
|
||||
name = Glance;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
CB2698BB1A3667CE00D75212 /* WatchKit Catalog */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = CB2698DF1A3667CE00D75212 /* Build configuration list for PBXNativeTarget "WatchKit Catalog" */;
|
||||
buildPhases = (
|
||||
CB2698B81A3667CE00D75212 /* Sources */,
|
||||
CB2698B91A3667CE00D75212 /* Frameworks */,
|
||||
CB2698BA1A3667CE00D75212 /* Resources */,
|
||||
CB26990F1A3667DA00D75212 /* Embed App Extensions */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
CB2699071A3667DA00D75212 /* PBXTargetDependency */,
|
||||
);
|
||||
name = "WatchKit Catalog";
|
||||
productName = "WatchKit Catalog";
|
||||
productReference = CB2698BC1A3667CE00D75212 /* WatchKit Catalog.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
CB2698E81A3667DA00D75212 /* WatchKit Catalog WatchKit Extension */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = CB26990C1A3667DA00D75212 /* Build configuration list for PBXNativeTarget "WatchKit Catalog WatchKit Extension" */;
|
||||
buildPhases = (
|
||||
CB2698E51A3667DA00D75212 /* Sources */,
|
||||
CB2698E61A3667DA00D75212 /* Frameworks */,
|
||||
CB2698E71A3667DA00D75212 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
CB2698FE1A3667DA00D75212 /* PBXTargetDependency */,
|
||||
);
|
||||
name = "WatchKit Catalog WatchKit Extension";
|
||||
productName = "WatchKit Catalog WatchKit Extension";
|
||||
productReference = CB2698E91A3667DA00D75212 /* WatchKit Catalog WatchKit Extension.appex */;
|
||||
productType = "com.apple.product-type.watchkit-extension";
|
||||
};
|
||||
CB2698FA1A3667DA00D75212 /* WatchKit Catalog WatchKit App */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = CB2699091A3667DA00D75212 /* Build configuration list for PBXNativeTarget "WatchKit Catalog WatchKit App" */;
|
||||
buildPhases = (
|
||||
CB2698F91A3667DA00D75212 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = "WatchKit Catalog WatchKit App";
|
||||
productName = "WatchKit Catalog WatchKit App";
|
||||
productReference = CB2698FB1A3667DA00D75212 /* WatchKit Catalog WatchKit App.app */;
|
||||
productType = "com.apple.product-type.application.watchapp";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
CB2698B41A3667CE00D75212 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0620;
|
||||
ORGANIZATIONNAME = "Apple Inc.";
|
||||
TargetAttributes = {
|
||||
CB2698BB1A3667CE00D75212 = {
|
||||
CreatedOnToolsVersion = 6.2;
|
||||
};
|
||||
CB2698E81A3667DA00D75212 = {
|
||||
CreatedOnToolsVersion = 6.2;
|
||||
SystemCapabilities = {
|
||||
com.apple.ApplicationGroups.iOS = {
|
||||
enabled = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
CB2698FA1A3667DA00D75212 = {
|
||||
CreatedOnToolsVersion = 6.2;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = CB2698B71A3667CE00D75212 /* Build configuration list for PBXProject "WatchKit Catalog" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
Base,
|
||||
);
|
||||
mainGroup = CB2698B31A3667CE00D75212;
|
||||
productRefGroup = CB2698BD1A3667CE00D75212 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
CB2698BB1A3667CE00D75212 /* WatchKit Catalog */,
|
||||
CB2698E81A3667DA00D75212 /* WatchKit Catalog WatchKit Extension */,
|
||||
CB2698FA1A3667DA00D75212 /* WatchKit Catalog WatchKit App */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
CB2698BA1A3667CE00D75212 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
CB2699531A36692200D75212 /* Main.storyboard in Resources */,
|
||||
CB2699551A36692200D75212 /* LaunchScreen.xib in Resources */,
|
||||
CB2699541A36692200D75212 /* Images.xcassets in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
CB2698E71A3667DA00D75212 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
CB2698FC1A3667DA00D75212 /* WatchKit Catalog WatchKit App.app in Resources */,
|
||||
CB2698F81A3667DA00D75212 /* Images.xcassets in Resources */,
|
||||
CB2699131A36686E00D75212 /* AppData.plist in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
CB2698F91A3667DA00D75212 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
CB2699111A36684E00D75212 /* Interface.storyboard in Resources */,
|
||||
CB2699051A3667DA00D75212 /* Images.xcassets in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
CB2698B81A3667CE00D75212 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
CB2699521A36692200D75212 /* AAPLAppDelegate.m in Sources */,
|
||||
CB2698C21A3667CE00D75212 /* main.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
CB2698E51A3667DA00D75212 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
CB2699451A3668E600D75212 /* AAPLNotificationController.m in Sources */,
|
||||
CBBB02831A37582C00F16DE6 /* AAPLTextInputController.m in Sources */,
|
||||
CB2699341A36689B00D75212 /* AAPLPageController.m in Sources */,
|
||||
CB2699311A36689B00D75212 /* AAPLGroupDetailController.m in Sources */,
|
||||
CB26993A1A3668AF00D75212 /* AAPLElementRowController.m in Sources */,
|
||||
CB26992E1A36689B00D75212 /* AAPLImageDetailController.m in Sources */,
|
||||
CB2699391A3668AF00D75212 /* AAPLInterfaceController.m in Sources */,
|
||||
CB2699401A3668D400D75212 /* AAPLTableDetailController.m in Sources */,
|
||||
CB2699331A36689B00D75212 /* AAPLControllerDetailController.m in Sources */,
|
||||
CB26992B1A36689B00D75212 /* AAPLButtonDetailController.m in Sources */,
|
||||
CB2699411A3668D400D75212 /* AAPLTableRowController.m in Sources */,
|
||||
CB26992F1A36689B00D75212 /* AAPLSeparatorDetailController.m in Sources */,
|
||||
CB2699481A3668EE00D75212 /* AAPLGlanceController.m in Sources */,
|
||||
CB2699321A36689B00D75212 /* AAPLDeviceDetailController.m in Sources */,
|
||||
CB26992C1A36689B00D75212 /* AAPLSwitchDetailController.m in Sources */,
|
||||
CB26992A1A36689B00D75212 /* AAPLLabelDetailController.m in Sources */,
|
||||
CB2699301A36689B00D75212 /* AAPLMapDetailController.m in Sources */,
|
||||
CB26992D1A36689B00D75212 /* AAPLSliderDetailController.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXTargetDependency section */
|
||||
CB2698FE1A3667DA00D75212 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = CB2698FA1A3667DA00D75212 /* WatchKit Catalog WatchKit App */;
|
||||
targetProxy = CB2698FD1A3667DA00D75212 /* PBXContainerItemProxy */;
|
||||
};
|
||||
CB2699071A3667DA00D75212 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = CB2698E81A3667DA00D75212 /* WatchKit Catalog WatchKit Extension */;
|
||||
targetProxy = CB2699061A3667DA00D75212 /* PBXContainerItemProxy */;
|
||||
};
|
||||
/* End PBXTargetDependency section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
CB2698DD1A3667CE00D75212 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
CB2698DE1A3667CE00D75212 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = YES;
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
CB2698E01A3667CE00D75212 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
INFOPLIST_FILE = "WatchKit Catalog/Info.plist";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
CB2698E11A3667CE00D75212 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
INFOPLIST_FILE = "WatchKit Catalog/Info.plist";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
CB26990A1A3667DA00D75212 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
IBSC_MODULE = WatchKit_Catalog_WatchKit_Extension;
|
||||
INFOPLIST_FILE = "WatchKit Catalog WatchKit App/Info.plist";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "";
|
||||
SKIP_INSTALL = YES;
|
||||
TARGETED_DEVICE_FAMILY = 4;
|
||||
"TARGETED_DEVICE_FAMILY[sdk=iphonesimulator*]" = "1,4";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
CB26990B1A3667DA00D75212 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
IBSC_MODULE = WatchKit_Catalog_WatchKit_Extension;
|
||||
INFOPLIST_FILE = "WatchKit Catalog WatchKit App/Info.plist";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "";
|
||||
SKIP_INSTALL = YES;
|
||||
TARGETED_DEVICE_FAMILY = 4;
|
||||
"TARGETED_DEVICE_FAMILY[sdk=iphonesimulator*]" = "1,4";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
CB26990D1A3667DA00D75212 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CODE_SIGN_ENTITLEMENTS = "";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
INFOPLIST_FILE = "WatchKit Catalog WatchKit Extension/Info.plist";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
PRODUCT_NAME = "${TARGET_NAME}";
|
||||
PROVISIONING_PROFILE = "";
|
||||
SKIP_INSTALL = YES;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
CB26990E1A3667DA00D75212 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CODE_SIGN_ENTITLEMENTS = "";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
INFOPLIST_FILE = "WatchKit Catalog WatchKit Extension/Info.plist";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
PRODUCT_NAME = "${TARGET_NAME}";
|
||||
PROVISIONING_PROFILE = "";
|
||||
SKIP_INSTALL = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
CB2698B71A3667CE00D75212 /* Build configuration list for PBXProject "WatchKit Catalog" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
CB2698DD1A3667CE00D75212 /* Debug */,
|
||||
CB2698DE1A3667CE00D75212 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
CB2698DF1A3667CE00D75212 /* Build configuration list for PBXNativeTarget "WatchKit Catalog" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
CB2698E01A3667CE00D75212 /* Debug */,
|
||||
CB2698E11A3667CE00D75212 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
CB2699091A3667DA00D75212 /* Build configuration list for PBXNativeTarget "WatchKit Catalog WatchKit App" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
CB26990A1A3667DA00D75212 /* Debug */,
|
||||
CB26990B1A3667DA00D75212 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
CB26990C1A3667DA00D75212 /* Build configuration list for PBXNativeTarget "WatchKit Catalog WatchKit Extension" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
CB26990D1A3667DA00D75212 /* Debug */,
|
||||
CB26990E1A3667DA00D75212 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = CB2698B41A3667CE00D75212 /* Project object */;
|
||||
}
|
|
@ -0,0 +1,140 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0620"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698FA1A3667DA00D75212"
|
||||
BuildableName = "WatchKit Catalog WatchKit App.app"
|
||||
BlueprintName = "WatchKit Catalog WatchKit App"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698E81A3667DA00D75212"
|
||||
BuildableName = "WatchKit Catalog WatchKit Extension.appex"
|
||||
BlueprintName = "WatchKit Catalog WatchKit Extension"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698BB1A3667CE00D75212"
|
||||
BuildableName = "WatchKit Catalog.app"
|
||||
BlueprintName = "WatchKit Catalog"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<Testables>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698FA1A3667DA00D75212"
|
||||
BuildableName = "WatchKit Catalog WatchKit App.app"
|
||||
BlueprintName = "WatchKit Catalog WatchKit App"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Debug"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
allowLocationSimulation = "YES"
|
||||
launchAutomaticallySubstyle = "4">
|
||||
<RemoteRunnable
|
||||
runnableDebuggingMode = "2"
|
||||
BundleIdentifier = "com.apple.springboard"
|
||||
launchOptions = "4"
|
||||
RemotePath = "/Catalog">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698FA1A3667DA00D75212"
|
||||
BuildableName = "WatchKit Catalog WatchKit App.app"
|
||||
BlueprintName = "WatchKit Catalog WatchKit App"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</RemoteRunnable>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698FA1A3667DA00D75212"
|
||||
BuildableName = "WatchKit Catalog WatchKit App.app"
|
||||
BlueprintName = "WatchKit Catalog WatchKit App"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Release"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698FA1A3667DA00D75212"
|
||||
BuildableName = "WatchKit Catalog WatchKit App.app"
|
||||
BlueprintName = "WatchKit Catalog WatchKit App"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<RemoteRunnable
|
||||
runnableDebuggingMode = "2"
|
||||
BundleIdentifier = "com.apple.springboard"
|
||||
RemotePath = "/WatchKit Catalog">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698FA1A3667DA00D75212"
|
||||
BuildableName = "WatchKit Catalog WatchKit App.app"
|
||||
BlueprintName = "WatchKit Catalog WatchKit App"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</RemoteRunnable>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
|
@ -0,0 +1,140 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0620"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698FA1A3667DA00D75212"
|
||||
BuildableName = "WatchKit Catalog WatchKit App.app"
|
||||
BlueprintName = "WatchKit Catalog WatchKit App"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698E81A3667DA00D75212"
|
||||
BuildableName = "WatchKit Catalog WatchKit Extension.appex"
|
||||
BlueprintName = "WatchKit Catalog WatchKit Extension"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698BB1A3667CE00D75212"
|
||||
BuildableName = "WatchKit Catalog.app"
|
||||
BlueprintName = "WatchKit Catalog"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<Testables>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698FA1A3667DA00D75212"
|
||||
BuildableName = "WatchKit Catalog WatchKit App.app"
|
||||
BlueprintName = "WatchKit Catalog WatchKit App"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Debug"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
allowLocationSimulation = "YES"
|
||||
launchAutomaticallySubstyle = "8"
|
||||
notificationPayloadFile = "WatchKit Catalog WatchKit Extension/NotificationPayload.apns">
|
||||
<RemoteRunnable
|
||||
runnableDebuggingMode = "2"
|
||||
BundleIdentifier = "com.apple.springboard"
|
||||
RemotePath = "/Catalog">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698FA1A3667DA00D75212"
|
||||
BuildableName = "WatchKit Catalog WatchKit App.app"
|
||||
BlueprintName = "WatchKit Catalog WatchKit App"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</RemoteRunnable>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698FA1A3667DA00D75212"
|
||||
BuildableName = "WatchKit Catalog WatchKit App.app"
|
||||
BlueprintName = "WatchKit Catalog WatchKit App"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Release"
|
||||
debugDocumentVersioning = "YES">
|
||||
<RemoteRunnable
|
||||
runnableDebuggingMode = "2"
|
||||
BundleIdentifier = "com.apple.springboard"
|
||||
RemotePath = "/WatchKit Catalog">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698FA1A3667DA00D75212"
|
||||
BuildableName = "WatchKit Catalog WatchKit App.app"
|
||||
BlueprintName = "WatchKit Catalog WatchKit App"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</RemoteRunnable>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698FA1A3667DA00D75212"
|
||||
BuildableName = "WatchKit Catalog WatchKit App.app"
|
||||
BlueprintName = "WatchKit Catalog WatchKit App"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
|
@ -0,0 +1,139 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0620"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698FA1A3667DA00D75212"
|
||||
BuildableName = "WatchKit Catalog WatchKit App.app"
|
||||
BlueprintName = "WatchKit Catalog WatchKit App"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698E81A3667DA00D75212"
|
||||
BuildableName = "WatchKit Catalog WatchKit Extension.appex"
|
||||
BlueprintName = "WatchKit Catalog WatchKit Extension"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698BB1A3667CE00D75212"
|
||||
BuildableName = "WatchKit Catalog.app"
|
||||
BlueprintName = "WatchKit Catalog"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<Testables>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698FA1A3667DA00D75212"
|
||||
BuildableName = "WatchKit Catalog WatchKit App.app"
|
||||
BlueprintName = "WatchKit Catalog WatchKit App"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Debug"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
allowLocationSimulation = "YES"
|
||||
notificationPayloadFile = "WatchKit Catalog WatchKit Extension/NotificationPayload.apns">
|
||||
<RemoteRunnable
|
||||
runnableDebuggingMode = "2"
|
||||
BundleIdentifier = "com.apple.springboard"
|
||||
RemotePath = "/WatchKit Catalog">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698FA1A3667DA00D75212"
|
||||
BuildableName = "WatchKit Catalog WatchKit App.app"
|
||||
BlueprintName = "WatchKit Catalog WatchKit App"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</RemoteRunnable>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698FA1A3667DA00D75212"
|
||||
BuildableName = "WatchKit Catalog WatchKit App.app"
|
||||
BlueprintName = "WatchKit Catalog WatchKit App"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Release"
|
||||
debugDocumentVersioning = "YES">
|
||||
<RemoteRunnable
|
||||
runnableDebuggingMode = "2"
|
||||
BundleIdentifier = "com.apple.springboard"
|
||||
RemotePath = "/WatchKit Catalog">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698FA1A3667DA00D75212"
|
||||
BuildableName = "WatchKit Catalog WatchKit App.app"
|
||||
BlueprintName = "WatchKit Catalog WatchKit App"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</RemoteRunnable>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698FA1A3667DA00D75212"
|
||||
BuildableName = "WatchKit Catalog WatchKit App.app"
|
||||
BlueprintName = "WatchKit Catalog WatchKit App"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
|
@ -0,0 +1,112 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0620"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698BB1A3667CE00D75212"
|
||||
BuildableName = "WatchKit Catalog.app"
|
||||
BlueprintName = "WatchKit Catalog"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "NO"
|
||||
buildForProfiling = "NO"
|
||||
buildForArchiving = "NO"
|
||||
buildForAnalyzing = "NO">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698D41A3667CE00D75212"
|
||||
BuildableName = "WatchKit CatalogTests.xctest"
|
||||
BlueprintName = "WatchKit CatalogTests"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<Testables>
|
||||
<TestableReference
|
||||
skipped = "NO">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698D41A3667CE00D75212"
|
||||
BuildableName = "WatchKit CatalogTests.xctest"
|
||||
BlueprintName = "WatchKit CatalogTests"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</TestableReference>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698BB1A3667CE00D75212"
|
||||
BuildableName = "WatchKit Catalog.app"
|
||||
BlueprintName = "WatchKit Catalog"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Debug"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
allowLocationSimulation = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698BB1A3667CE00D75212"
|
||||
BuildableName = "WatchKit Catalog.app"
|
||||
BlueprintName = "WatchKit Catalog"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Release"
|
||||
debugDocumentVersioning = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CB2698BB1A3667CE00D75212"
|
||||
BuildableName = "WatchKit Catalog.app"
|
||||
BlueprintName = "WatchKit Catalog"
|
||||
ReferencedContainer = "container:WatchKit Catalog.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
The application delegate which creates the window and root view controller.
|
||||
*/
|
||||
|
||||
@import UIKit;
|
||||
|
||||
@interface AAPLAppDelegate : UIResponder <UIApplicationDelegate>
|
||||
|
||||
@property (strong, nonatomic) UIWindow *window;
|
||||
|
||||
@end
|
|
@ -0,0 +1,21 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
The application delegate which creates the window and root view controller.
|
||||
*/
|
||||
|
||||
#import "AAPLAppDelegate.h"
|
||||
|
||||
@implementation AAPLAppDelegate
|
||||
|
||||
- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void(^)(NSDictionary *replyInfo))reply{
|
||||
// Receives text input result from the WatchKit app extension.
|
||||
NSLog(@"User Info: %@", userInfo);
|
||||
|
||||
// Sends a confirmation message to the WatchKit app extension that the text input result was received.
|
||||
reply(@{@"Confirmation" : @"Text was received."});
|
||||
}
|
||||
|
||||
@end
|
|
@ -0,0 +1,44 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-29@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-29@3x.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"size" : "40x40",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-40@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "40x40",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-40@3x.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"size" : "60x60",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-60@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "60x60",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-60@3x.png",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 5.8 KiB |
After Width: | Height: | Size: 5.8 KiB |
After Width: | Height: | Size: 8.0 KiB |
|
@ -0,0 +1,40 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.example.apple-samplecode.$(PRODUCT_NAME:rfc1034identifier)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Catalog</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen</string>
|
||||
<key>UIMainStoryboardFile</key>
|
||||
<string>Main</string>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>armv7</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6221" systemVersion="14A389" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6213"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="iN0-l3-epB">
|
||||
<rect key="frame" x="0.0" y="0.0" width="480" height="480"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<nil key="simulatedStatusBarMetrics"/>
|
||||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
||||
<point key="canvasLocation" x="548" y="455"/>
|
||||
</view>
|
||||
</objects>
|
||||
</document>
|
|
@ -0,0 +1,40 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="6221" systemVersion="14C59" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="vXZ-lx-hvc">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6213"/>
|
||||
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--View Controller-->
|
||||
<scene sceneID="ufC-wZ-h7g">
|
||||
<objects>
|
||||
<viewController id="vXZ-lx-hvc" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="jyV-Pf-zRb"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="2fi-mo-0CV"/>
|
||||
</layoutGuides>
|
||||
<view key="view" contentMode="scaleToFill" id="kh9-bI-dsS">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tna-Ls-35X">
|
||||
<rect key="frame" x="36" y="50" width="528" height="61"/>
|
||||
<string key="text">WatchKit Catalog demonstrates how to configure and layout WatchKit UI elements. Launch one of the Watch app schemes in the Xcode toolbar.</string>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="tna-Ls-35X" firstAttribute="top" secondItem="jyV-Pf-zRb" secondAttribute="bottom" constant="30" id="WOW-nd-xji"/>
|
||||
<constraint firstAttribute="trailingMargin" secondItem="tna-Ls-35X" secondAttribute="trailing" constant="20" id="eod-2r-LvY"/>
|
||||
<constraint firstItem="tna-Ls-35X" firstAttribute="leading" secondItem="kh9-bI-dsS" secondAttribute="leadingMargin" constant="20" id="iPt-CF-z3q"/>
|
||||
</constraints>
|
||||
</view>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="x5A-6p-PRh" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
</scene>
|
||||
</scenes>
|
||||
</document>
|
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
Copyright (C) 2015 Apple Inc. All Rights Reserved.
|
||||
See LICENSE.txt for this sample’s licensing information
|
||||
|
||||
Abstract:
|
||||
The main entry point of the application.
|
||||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "AAPLAppDelegate.h"
|
||||
|
||||
int main(int argc, char * argv[]) {
|
||||
@autoreleasepool {
|
||||
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AAPLAppDelegate class]));
|
||||
}
|
||||
}
|