Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions Seasonizer/AccessoryListViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,16 @@ class AccessoryListViewController: UITableViewController {
// MARK: User Interaction

// TODO: Implement `prepareForSegue(_:sender:)` to set `selectedAccessory` when the "selectedAccessory" Segue is performed.

private var indexOfSelectedAccessory = 0

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "selectedAccessory" {
guard let indexPath = tableView.indexPathForSelectedRow else {return }
selectedAccessory = accessories![indexPath.row]
}
}

/*
HINT: Obtain the selected index path with:

Expand All @@ -35,3 +45,25 @@ class AccessoryListViewController: UITableViewController {
// MARK: - Table View Data Source

// TODO: Implement the `UITableViewDataSource` protocol.
extension AccessoryListViewController {

// override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
// indexOfSelectedAccessory = indexPath.row
// }

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return (accessories?.count)!
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("AccessoryCell", forIndexPath: indexPath) as UITableViewCell

cell.imageView!.image = accessories![indexPath.row].image
cell.textLabel!.text = accessories![indexPath.row].title
return cell
}
}
35 changes: 35 additions & 0 deletions Seasonizer/CanvasViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,10 @@ class CanvasViewController: UIViewController, UINavigationControllerDelegate, UI
UIGraphicsEndImageContext()
return renderedPicture
}


// Added
private var selectedAccessory : Accessory?


// MARK: User Interaction
Expand Down Expand Up @@ -120,6 +124,18 @@ class CanvasViewController: UIViewController, UINavigationControllerDelegate, UI


// TODO: Implement `prepareForSegue(_:sender:)` to pass `allAccessories` on to `AccessoryListViewController`.

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
switch segue.identifier! {
case "AccessoryView":
guard let accessoryListViewController = (segue.destinationViewController as? UINavigationController)?.topViewController as? AccessoryListViewController else {break}
accessoryListViewController.accessories = allAccessories
print(accessoryListViewController.accessories)

default:
break
}
}
/*
HINT: The `AccessoryListViewController` should be embedded in a `UINavigationController`:

Expand All @@ -130,6 +146,25 @@ class CanvasViewController: UIViewController, UINavigationControllerDelegate, UI


// TODO: Implement an `@IBAction func unwindToCanvas(segue: UIStoryboardSegue)` Unwing Segue that the `AccessoryListViewController` can exit to.
@IBAction func unwindToCanvas (segue: UIStoryboardSegue) {
switch segue.identifier! {
case "selectedAccessory":
guard let accessoryListViewController = segue.sourceViewController as? AccessoryListViewController,
selectedAccessory = accessoryListViewController.selectedAccessory else {
break
}
let accessoryView = AccessoryView(accessory: selectedAccessory)
accessoryView.center = accessoryOverlayView.convertPoint(accessoryOverlayView.center, fromView: accessoryOverlayView.superview)

addAccessoryView(accessoryView)

case "ExitFromButton":
print("buttonExitToCanvas fired")
default:
break
}
}


// TODO: For the "selectedAccessory" segue, obtain the selected accessory and add it to the canvas.
/*
Expand Down
118 changes: 113 additions & 5 deletions Seasonizer/Main.storyboard
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15E65" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="A6u-BR-TcU">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10116" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="A6u-BR-TcU">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
</dependencies>
Expand All @@ -15,14 +15,122 @@
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ZeE-kL-vEk">
<rect key="frame" x="0.0" y="64" width="600" height="492"/>
</imageView>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
<toolbarItems/>
<navigationItem key="navigationItem" title="Seasonizer" id="6dS-Kq-rKs"/>
<toolbarItems>
<barButtonItem systemItem="trash" id="rh7-fO-94o">
<connections>
<action selector="trashButtonPressed:" destination="BYZ-38-t0r" id="JVP-y9-KF5"/>
</connections>
</barButtonItem>
<barButtonItem style="plain" systemItem="flexibleSpace" id="kCx-Vb-FRn"/>
<barButtonItem systemItem="camera" id="VmE-RM-Jue">
<connections>
<action selector="cameraButtonPressed:" destination="BYZ-38-t0r" id="eou-hJ-6kL"/>
</connections>
</barButtonItem>
<barButtonItem style="plain" systemItem="flexibleSpace" id="Wz4-u0-cZj"/>
<barButtonItem title="Accessories" id="ys6-Fa-can">
<connections>
<segue destination="Frv-hR-OcH" kind="presentation" identifier="AccessoryView" modalTransitionStyle="coverVertical" id="hor-YU-AHP"/>
</connections>
</barButtonItem>
</toolbarItems>
<navigationItem key="navigationItem" title="Seasonizer" id="6dS-Kq-rKs">
<barButtonItem key="rightBarButtonItem" systemItem="action" id="dgm-ZT-gQR">
<connections>
<action selector="actionButtonPressed:" destination="BYZ-38-t0r" id="0fU-gO-50b"/>
</connections>
</barButtonItem>
</navigationItem>
<connections>
<outlet property="accessoryOverlayView" destination="8bC-Xf-vdC" id="mXK-nx-FyV"/>
<outlet property="photoImageView" destination="ZeE-kL-vEk" id="Ecd-aj-8Yf"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="1010" y="136"/>
<point key="canvasLocation" x="1054" y="136"/>
</scene>
<!--Accessory List View Controller-->
<scene sceneID="lbw-2H-ngA">
<objects>
<tableViewController id="PeH-ce-wdS" customClass="AccessoryListViewController" customModule="Seasonizer" customModuleProvider="target" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" id="2jr-0k-mZ4">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<navigationBar key="tableHeaderView" contentMode="scaleToFill" id="5wL-w8-6Gj">
<rect key="frame" x="0.0" y="64" width="600" height="44"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
<items>
<navigationItem title="Accessories" id="gj2-dr-QaL">
<barButtonItem key="backBarButtonItem" title="Cancel" id="UEP-8w-vdc"/>
</navigationItem>
</items>
</navigationBar>
<prototypes>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" restorationIdentifier="AccessoryCell" selectionStyle="default" indentationWidth="10" reuseIdentifier="AccessoryCell" textLabel="wQD-bB-oQW" style="IBUITableViewCellStyleDefault" id="7Qo-xs-X2Z">
<rect key="frame" x="0.0" y="136" width="600" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="7Qo-xs-X2Z" id="cTI-Pb-dZn">
<rect key="frame" x="0.0" y="0.0" width="600" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Title" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="wQD-bB-oQW">
<rect key="frame" x="15" y="0.0" width="570" height="43.5"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
<connections>
<segue destination="4L3-zo-L4f" kind="unwind" identifier="selectedAccessory" unwindAction="unwindToCanvas:" id="VXX-od-U1O"/>
</connections>
</tableViewCell>
</prototypes>
<connections>
<outlet property="dataSource" destination="PeH-ce-wdS" id="Egh-nT-xmK"/>
<outlet property="delegate" destination="PeH-ce-wdS" id="kjD-5X-PCc"/>
</connections>
</tableView>
<toolbarItems/>
<navigationItem key="navigationItem" id="QbZ-xo-0FX">
<barButtonItem key="rightBarButtonItem" systemItem="cancel" id="opM-Ue-JJ7">
<connections>
<segue destination="4L3-zo-L4f" kind="unwind" identifier="ExitFromButton" unwindAction="unwindToCanvas:" id="0By-2Z-pek"/>
</connections>
</barButtonItem>
</navigationItem>
<simulatedToolbarMetrics key="simulatedBottomBarMetrics"/>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="Kbo-AW-Lbs" userLabel="First Responder" sceneMemberID="firstResponder"/>
<exit id="4L3-zo-L4f" userLabel="Exit" sceneMemberID="exit"/>
</objects>
<point key="canvasLocation" x="2548" y="136"/>
</scene>
<!--Navigation Controller-->
<scene sceneID="yzR-6f-KZA">
<objects>
<navigationController id="Frv-hR-OcH" sceneMemberID="viewController">
<navigationBar key="navigationBar" contentMode="scaleToFill" id="n6p-Gt-fhI">
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
</navigationBar>
<connections>
<segue destination="PeH-ce-wdS" kind="relationship" relationship="rootViewController" id="lKh-uj-eSc"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="3KB-YV-tdl" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="1736" y="-300"/>
</scene>
<!--Navigation Controller-->
<scene sceneID="WSz-3O-Obv">
Expand All @@ -44,7 +152,7 @@
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="GSV-sV-N3u" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="258" y="136"/>
<point key="canvasLocation" x="318" y="136"/>
</scene>
</scenes>
</document>