Finished new sign in and login view controllers. now getting build build and navigation controller runtime errors

This commit is contained in:
Okechi 2016-02-16 05:00:38 -05:00
parent b263ce3a22
commit 4e07f4dda6
16 changed files with 516 additions and 24 deletions

View File

@ -7,6 +7,8 @@
objects = { objects = {
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
3E0B78B91C6E3756001DF21E /* Pause-52.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E0B78B71C6E3756001DF21E /* Pause-52.png */; };
3E0B78BA1C6E3756001DF21E /* Play-52.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E0B78B81C6E3756001DF21E /* Play-52.png */; };
3E101F061C52E5FD00C895CA /* MultipeerConnectivity.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E101F051C52E5FD00C895CA /* MultipeerConnectivity.framework */; }; 3E101F061C52E5FD00C895CA /* MultipeerConnectivity.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E101F051C52E5FD00C895CA /* MultipeerConnectivity.framework */; };
3E101F081C52E65300C895CA /* PartyServiceManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E101F071C52E65300C895CA /* PartyServiceManager.swift */; }; 3E101F081C52E65300C895CA /* PartyServiceManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E101F071C52E65300C895CA /* PartyServiceManager.swift */; };
3E101F0A1C52F14A00C895CA /* InviteFriendsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E101F091C52F14A00C895CA /* InviteFriendsView.swift */; }; 3E101F0A1C52F14A00C895CA /* InviteFriendsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E101F091C52F14A00C895CA /* InviteFriendsView.swift */; };
@ -102,6 +104,7 @@
3E627FF11C55AE35005C0372 /* TDAudioInputStreamer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E627FE11C55AE35005C0372 /* TDAudioInputStreamer.m */; }; 3E627FF11C55AE35005C0372 /* TDAudioInputStreamer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E627FE11C55AE35005C0372 /* TDAudioInputStreamer.m */; };
3E627FF21C55AE35005C0372 /* TDAudioOutputStreamer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E627FE31C55AE35005C0372 /* TDAudioOutputStreamer.m */; }; 3E627FF21C55AE35005C0372 /* TDAudioOutputStreamer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E627FE31C55AE35005C0372 /* TDAudioOutputStreamer.m */; };
3E627FF31C55AE35005C0372 /* TDAudioPlayerConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E627FE51C55AE35005C0372 /* TDAudioPlayerConstants.m */; }; 3E627FF31C55AE35005C0372 /* TDAudioPlayerConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E627FE51C55AE35005C0372 /* TDAudioPlayerConstants.m */; };
3E6738F51C6E9C7700B47C3E /* LoginController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E6738F41C6E9C7700B47C3E /* LoginController.swift */; };
3E76CF261C38258600193B58 /* Parse.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E76CF231C38258600193B58 /* Parse.framework */; }; 3E76CF261C38258600193B58 /* Parse.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E76CF231C38258600193B58 /* Parse.framework */; };
3E76CF271C38258600193B58 /* ParseFacebookUtilsV4.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E76CF241C38258600193B58 /* ParseFacebookUtilsV4.framework */; }; 3E76CF271C38258600193B58 /* ParseFacebookUtilsV4.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E76CF241C38258600193B58 /* ParseFacebookUtilsV4.framework */; };
3E76CF281C38258600193B58 /* ParseUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E76CF251C38258600193B58 /* ParseUI.framework */; }; 3E76CF281C38258600193B58 /* ParseUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E76CF251C38258600193B58 /* ParseUI.framework */; };
@ -119,6 +122,7 @@
3EBE97731C5413240079B54A /* TestInviteFriendsCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EBE97721C5413240079B54A /* TestInviteFriendsCell.swift */; }; 3EBE97731C5413240079B54A /* TestInviteFriendsCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EBE97721C5413240079B54A /* TestInviteFriendsCell.swift */; };
3EDA82E11C473E900081ED53 /* FriendData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EDA82E01C473E900081ED53 /* FriendData.swift */; }; 3EDA82E11C473E900081ED53 /* FriendData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EDA82E01C473E900081ED53 /* FriendData.swift */; };
3EDA82E31C4741C70081ED53 /* FriendDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EDA82E21C4741C70081ED53 /* FriendDataSource.swift */; }; 3EDA82E31C4741C70081ED53 /* FriendDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EDA82E21C4741C70081ED53 /* FriendDataSource.swift */; };
3EF36C761C71694C00CD0DC0 /* SignInController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EF36C751C71694C00CD0DC0 /* SignInController.swift */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */ /* Begin PBXContainerItemProxy section */
@ -132,6 +136,8 @@
/* End PBXContainerItemProxy section */ /* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
3E0B78B71C6E3756001DF21E /* Pause-52.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Pause-52.png"; path = "../../../Dropbox/Gethip/Screens/Song Playing/5 Play Screen/Assets/Pause-52.png"; sourceTree = "<group>"; };
3E0B78B81C6E3756001DF21E /* Play-52.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Play-52.png"; path = "../../../Dropbox/Gethip/Screens/Song Playing/5 Play Screen/Assets/Play-52.png"; sourceTree = "<group>"; };
3E101F051C52E5FD00C895CA /* MultipeerConnectivity.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MultipeerConnectivity.framework; path = System/Library/Frameworks/MultipeerConnectivity.framework; sourceTree = SDKROOT; }; 3E101F051C52E5FD00C895CA /* MultipeerConnectivity.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MultipeerConnectivity.framework; path = System/Library/Frameworks/MultipeerConnectivity.framework; sourceTree = SDKROOT; };
3E101F071C52E65300C895CA /* PartyServiceManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PartyServiceManager.swift; sourceTree = "<group>"; }; 3E101F071C52E65300C895CA /* PartyServiceManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PartyServiceManager.swift; sourceTree = "<group>"; };
3E101F091C52F14A00C895CA /* InviteFriendsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InviteFriendsView.swift; sourceTree = "<group>"; }; 3E101F091C52F14A00C895CA /* InviteFriendsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InviteFriendsView.swift; sourceTree = "<group>"; };
@ -249,6 +255,7 @@
3E627FE31C55AE35005C0372 /* TDAudioOutputStreamer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TDAudioOutputStreamer.m; sourceTree = "<group>"; }; 3E627FE31C55AE35005C0372 /* TDAudioOutputStreamer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TDAudioOutputStreamer.m; sourceTree = "<group>"; };
3E627FE41C55AE35005C0372 /* TDAudioPlayerConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TDAudioPlayerConstants.h; path = "../../../../Downloads/TDAudioPlayer-master/TDAudioPlayer/AudioPlayerLibrary/TDAudioPlayerConstants.h"; sourceTree = "<group>"; }; 3E627FE41C55AE35005C0372 /* TDAudioPlayerConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TDAudioPlayerConstants.h; path = "../../../../Downloads/TDAudioPlayer-master/TDAudioPlayer/AudioPlayerLibrary/TDAudioPlayerConstants.h"; sourceTree = "<group>"; };
3E627FE51C55AE35005C0372 /* TDAudioPlayerConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TDAudioPlayerConstants.m; path = "../../../../Downloads/TDAudioPlayer-master/TDAudioPlayer/AudioPlayerLibrary/TDAudioPlayerConstants.m"; sourceTree = "<group>"; }; 3E627FE51C55AE35005C0372 /* TDAudioPlayerConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TDAudioPlayerConstants.m; path = "../../../../Downloads/TDAudioPlayer-master/TDAudioPlayer/AudioPlayerLibrary/TDAudioPlayerConstants.m"; sourceTree = "<group>"; };
3E6738F41C6E9C7700B47C3E /* LoginController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginController.swift; sourceTree = "<group>"; };
3E76CF231C38258600193B58 /* Parse.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Parse.framework; path = "../../Parse-iOS/Parse.framework"; sourceTree = "<group>"; }; 3E76CF231C38258600193B58 /* Parse.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Parse.framework; path = "../../Parse-iOS/Parse.framework"; sourceTree = "<group>"; };
3E76CF241C38258600193B58 /* ParseFacebookUtilsV4.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ParseFacebookUtilsV4.framework; path = "../../Parse-iOS/ParseFacebookUtilsV4.framework"; sourceTree = "<group>"; }; 3E76CF241C38258600193B58 /* ParseFacebookUtilsV4.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ParseFacebookUtilsV4.framework; path = "../../Parse-iOS/ParseFacebookUtilsV4.framework"; sourceTree = "<group>"; };
3E76CF251C38258600193B58 /* ParseUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ParseUI.framework; path = "../../Parse-iOS/ParseUI.framework"; sourceTree = "<group>"; }; 3E76CF251C38258600193B58 /* ParseUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ParseUI.framework; path = "../../Parse-iOS/ParseUI.framework"; sourceTree = "<group>"; };
@ -268,6 +275,7 @@
3EBE97721C5413240079B54A /* TestInviteFriendsCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestInviteFriendsCell.swift; sourceTree = "<group>"; }; 3EBE97721C5413240079B54A /* TestInviteFriendsCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestInviteFriendsCell.swift; sourceTree = "<group>"; };
3EDA82E01C473E900081ED53 /* FriendData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FriendData.swift; sourceTree = "<group>"; }; 3EDA82E01C473E900081ED53 /* FriendData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FriendData.swift; sourceTree = "<group>"; };
3EDA82E21C4741C70081ED53 /* FriendDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FriendDataSource.swift; sourceTree = "<group>"; }; 3EDA82E21C4741C70081ED53 /* FriendDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FriendDataSource.swift; sourceTree = "<group>"; };
3EF36C751C71694C00CD0DC0 /* SignInController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SignInController.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
@ -459,6 +467,8 @@
3E438AE01C57387B0055C97A /* iPhone5 */ = { 3E438AE01C57387B0055C97A /* iPhone5 */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
3E0B78B71C6E3756001DF21E /* Pause-52.png */,
3E0B78B81C6E3756001DF21E /* Play-52.png */,
3EB8845B1C6C647700CCDCCE /* Add More@2x.png */, 3EB8845B1C6C647700CCDCCE /* Add More@2x.png */,
3EB8845C1C6C647700CCDCCE /* Leave Party@2x.png */, 3EB8845C1C6C647700CCDCCE /* Leave Party@2x.png */,
3E5BD3121C6C45CE00266B16 /* Home Copy@2x.png */, 3E5BD3121C6C45CE00266B16 /* Home Copy@2x.png */,
@ -560,6 +570,8 @@
3E330B191C38502F00276FE4 /* LoginViewController.swift */, 3E330B191C38502F00276FE4 /* LoginViewController.swift */,
3E4169541C398A5B00B193AF /* SignUpViewController.swift */, 3E4169541C398A5B00B193AF /* SignUpViewController.swift */,
3E1BDA561C37111D00EE3B84 /* ViewController.swift */, 3E1BDA561C37111D00EE3B84 /* ViewController.swift */,
3E6738F41C6E9C7700B47C3E /* LoginController.swift */,
3EF36C751C71694C00CD0DC0 /* SignInController.swift */,
); );
name = "User Authentication"; name = "User Authentication";
sourceTree = "<group>"; sourceTree = "<group>";
@ -773,6 +785,7 @@
3E438AEA1C5738EF0055C97A /* Turntable@2x.png in Resources */, 3E438AEA1C5738EF0055C97A /* Turntable@2x.png in Resources */,
3E5952801C39DDA800C88C71 /* Group@3x.png in Resources */, 3E5952801C39DDA800C88C71 /* Group@3x.png in Resources */,
3E5952631C39DBC900C88C71 /* Friends.png in Resources */, 3E5952631C39DBC900C88C71 /* Friends.png in Resources */,
3E0B78B91C6E3756001DF21E /* Pause-52.png in Resources */,
3E5952811C39DDA800C88C71 /* Settings.png in Resources */, 3E5952811C39DDA800C88C71 /* Settings.png in Resources */,
3E59527E1C39DDA800C88C71 /* Group.png in Resources */, 3E59527E1C39DDA800C88C71 /* Group.png in Resources */,
3E5952711C39DC1E00C88C71 /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@3x.png in Resources */, 3E5952711C39DC1E00C88C71 /* Rectangle 10 + Change Photo + voice_presentation copy + voice_presentation copy 2 + voice_presentation + Music 2 + Music 2@3x.png in Resources */,
@ -790,6 +803,7 @@
3EBE976A1C53E4290079B54A /* Blue Check.png in Resources */, 3EBE976A1C53E4290079B54A /* Blue Check.png in Resources */,
3E438AE71C5738EF0055C97A /* Friends@2x.png in Resources */, 3E438AE71C5738EF0055C97A /* Friends@2x.png in Resources */,
3E59528A1C39EB6100C88C71 /* Turntable@2x.png in Resources */, 3E59528A1C39EB6100C88C71 /* Turntable@2x.png in Resources */,
3E0B78BA1C6E3756001DF21E /* Play-52.png in Resources */,
3E438ADE1C572DFD0055C97A /* Main.storyboard in Resources */, 3E438ADE1C572DFD0055C97A /* Main.storyboard in Resources */,
3E438AE81C5738EF0055C97A /* Settings@2x.png in Resources */, 3E438AE81C5738EF0055C97A /* Settings@2x.png in Resources */,
3E5952681C39DBC900C88C71 /* Settings@3x.png in Resources */, 3E5952681C39DBC900C88C71 /* Settings@3x.png in Resources */,
@ -829,6 +843,7 @@
3E5485B51C69CE2F00E7D5AB /* InvitedCollectionViewCell.swift in Sources */, 3E5485B51C69CE2F00E7D5AB /* InvitedCollectionViewCell.swift in Sources */,
3E3412571C54C31F006226E0 /* SongSelectionViewController.swift in Sources */, 3E3412571C54C31F006226E0 /* SongSelectionViewController.swift in Sources */,
3E627FE81C55AE35005C0372 /* TDAudioMetaInfo.m in Sources */, 3E627FE81C55AE35005C0372 /* TDAudioMetaInfo.m in Sources */,
3E6738F51C6E9C7700B47C3E /* LoginController.swift in Sources */,
3E34125B1C54C73A006226E0 /* PartySession.swift in Sources */, 3E34125B1C54C73A006226E0 /* PartySession.swift in Sources */,
3E627FF01C55AE35005C0372 /* TDAudioStream.m in Sources */, 3E627FF01C55AE35005C0372 /* TDAudioStream.m in Sources */,
3E627FE91C55AE35005C0372 /* TDAudioPlayer.m in Sources */, 3E627FE91C55AE35005C0372 /* TDAudioPlayer.m in Sources */,
@ -848,6 +863,7 @@
3E627FEF1C55AE35005C0372 /* TDAudioQueueFiller.m in Sources */, 3E627FEF1C55AE35005C0372 /* TDAudioQueueFiller.m in Sources */,
3E1BDA551C37111D00EE3B84 /* GetHip.xcdatamodeld in Sources */, 3E1BDA551C37111D00EE3B84 /* GetHip.xcdatamodeld in Sources */,
3E326BCC1C51C20000F785CF /* SettingsTableViewController.swift in Sources */, 3E326BCC1C51C20000F785CF /* SettingsTableViewController.swift in Sources */,
3EF36C761C71694C00CD0DC0 /* SignInController.swift in Sources */,
3EBE97731C5413240079B54A /* TestInviteFriendsCell.swift in Sources */, 3EBE97731C5413240079B54A /* TestInviteFriendsCell.swift in Sources */,
3E101F0A1C52F14A00C895CA /* InviteFriendsView.swift in Sources */, 3E101F0A1C52F14A00C895CA /* InviteFriendsView.swift in Sources */,
3E1B5E451C5274E700D1AB62 /* SettingsDetailViewWrapper.swift in Sources */, 3E1B5E451C5274E700D1AB62 /* SettingsDetailViewWrapper.swift in Sources */,

View File

@ -66,7 +66,8 @@ class CurrentlyPlayingViewController: UIViewController {
// Pass the selected object to the new view controller. // Pass the selected object to the new view controller.
if(segue.identifier == "InPartySegue"){ if(segue.identifier == "InPartySegue"){
let vc: InPartyViewController = (segue.destinationViewController as? InPartyViewController)!
vc.setData(self.party)
} }
} }

View File

@ -43,7 +43,7 @@ class FriendDataSource{
(imgData, error) -> Void in (imgData, error) -> Void in
var downloadedImg = UIImage(data: imgData!) var downloadedImg = UIImage(data: imgData!)
newFriend.profileImg.image = downloadedImg newFriend.profileImg = UIImageView(image: downloadedImg)
}) })
}) })
//print(userName) //print(userName)
@ -75,7 +75,7 @@ class FriendDataSource{
(imgData, error) -> Void in (imgData, error) -> Void in
var downloadedImg = UIImage(data: imgData!) var downloadedImg = UIImage(data: imgData!)
newFriend.profileImg.image = downloadedImg newFriend.profileImg = UIImageView(image: downloadedImg)
}) })
}) })

View File

@ -93,7 +93,7 @@ class HomeScreenViewController: UIViewController {
let nav: UINavigationController = (segue.destinationViewController as? UINavigationController)! let nav: UINavigationController = (segue.destinationViewController as? UINavigationController)!
let vc: SettingsTableViewController = (nav.viewControllers[0] as? SettingsTableViewController)! let vc: SettingsTableViewController = (nav.viewControllers[0] as? SettingsTableViewController)!
vc.setData(self.userData) vc.setData(self.userData, prty: self.partyData)
} }
if segue.identifier == "FriendListSegue" { if segue.identifier == "FriendListSegue" {

View File

@ -8,7 +8,7 @@
import UIKit import UIKit
class InPartyViewController: UIViewController { class InPartyViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate{
var party: PartyServiceManager! var party: PartyServiceManager!
@IBOutlet var friendsInParty: UICollectionView! @IBOutlet var friendsInParty: UICollectionView!
@IBOutlet var AddMore: UIButton! @IBOutlet var AddMore: UIButton!
@ -24,10 +24,16 @@ class InPartyViewController: UIViewController {
} }
func setData(prty: PartyServiceManager){
self.party = prty
}
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
// Do any additional setup after loading the view. // Do any additional setup after loading the view.
self.friendsInParty.dataSource = self
self.friendsInParty.delegate = self
} }
override func didReceiveMemoryWarning() { override func didReceiveMemoryWarning() {
@ -36,6 +42,33 @@ class InPartyViewController: UIViewController {
} }
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let friend = self.party.invitedFriends[indexPath.row]
let cell: InvitedCollectionViewCell = self.friendsInParty.dequeueReusableCellWithReuseIdentifier("InvitedCollectionCell", forIndexPath: indexPath) as! InvitedCollectionViewCell
if friend.profileImg == nil {
cell.friendImage.backgroundColor = UIColor.grayColor()
}
else{
cell.friendImage.image = friend.profileImg.image!
}
//rounds uiimage and configures UIImageView
//cell!.proImage.layer.borderWidth = 3.0
//cell!.proImage.clipsToBounds = true
cell.friendImage.layer.cornerRadius = cell.friendImage.frame.size.width/2
//cell.alpha = 0.5
//cell!.proImage.layer.borderColor = UIColor.whiteColor().CGColor
//cell!.proImage.layer.masksToBounds = true
return cell
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return self.party.invitedFriends.count
}
/* /*
// MARK: - Navigation // MARK: - Navigation

View File

@ -72,7 +72,7 @@ class LoadingPartyViewController: UIViewController, UICollectionViewDataSource,
cell.friendImage.backgroundColor = UIColor.grayColor() cell.friendImage.backgroundColor = UIColor.grayColor()
} }
else{ else{
cell.friendImage.image = friend.profileImg.image!
} }
//rounds uiimage and configures UIImageView //rounds uiimage and configures UIImageView

View File

@ -0,0 +1,75 @@
//
// LoginController.swift
// GetHip
//
// Created by Okechi on 2/12/16.
// Copyright (c) 2016 Kroleo. All rights reserved.
//
import UIKit
class LoginController: UIViewController, PFLogInViewControllerDelegate {
@IBOutlet var userEmailField: UITextField!
@IBOutlet var password: UITextField!
@IBOutlet var signIn: UIButton!
@IBOutlet var signUpButton: UIButton!
@IBOutlet var forgotPassBtn: UIButton!
@IBAction func loginBtnPressed(sender: UIButton){
//check if user logging in with email, implement later
PFUser.logInWithUsernameInBackground(userEmailField.text!, password: password.text!, block: {
(user, error) -> Void in
if(user != nil){
self.performSegueWithIdentifier("LoginToHomeSegue", sender: self)
}else{
var alert = UIAlertController(title: "Invalid Login", message: "Your friend request was sent successfully!", preferredStyle: .Alert)
alert.addAction(UIAlertAction(title: "OK", style: .Default, handler:{(action: UIAlertAction!) in alert.dismissViewControllerAnimated(true, completion: nil)}))
self.presentViewController(alert, animated: true, completion: nil)
}
})
}
@IBAction func signUpBtnPressed(sender: UIButton){
self.performSegueWithIdentifier("signUpSegue", sender: self)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
//check if user already signed in
if(PFUser.currentUser() != nil){
presentLoggedInAlert()
}
self.signIn.layer.borderWidth = 1
self.signIn.layer.cornerRadius = 5
self.signIn.layer.borderColor = UIColor.whiteColor().CGColor
self.navigationController?.navigationBarHidden = true
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func presentLoggedInAlert() {
self.performSegueWithIdentifier("LoginToHomeSegue", sender: self)
} /*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
}
*/
}

View File

@ -6,6 +6,7 @@
// Copyright (c) 2016 Kroleo. All rights reserved. // Copyright (c) 2016 Kroleo. All rights reserved.
// //
//DEPRECATED WILL DELETE WHEN PROJECT COMPLETED
import UIKit import UIKit
class LoginViewController: PFLogInViewController{ class LoginViewController: PFLogInViewController{

View File

@ -1,9 +1,186 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="7706" systemVersion="14A389" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="6mR-Ay-Hzp"> <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="7706" systemVersion="14A389" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="CzG-yI-Fm4">
<dependencies> <dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/> <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
</dependencies> </dependencies>
<scenes> <scenes>
<!--Login Controller-->
<scene sceneID="XkJ-Xw-3em">
<objects>
<viewController id="j0X-k4-h6H" customClass="LoginController" customModule="GetHip" customModuleProvider="target" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="UdF-Q0-IgK"/>
<viewControllerLayoutGuide type="bottom" id="YdS-RO-b90"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="18p-VZ-rZM">
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="1x.png" translatesAutoresizingMaskIntoConstraints="NO" id="VPy-NM-k9g">
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
</imageView>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Username or Email" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="gFr-9c-756">
<rect key="frame" x="25" y="257" width="270" height="30"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<textInputTraits key="textInputTraits"/>
</textField>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Password" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="now-tn-sIq">
<rect key="frame" x="25" y="305" width="270" height="30"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<textInputTraits key="textInputTraits"/>
</textField>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ALE-x0-k9I">
<rect key="frame" x="90" y="365" width="141" height="30"/>
<state key="normal" title="Sign In">
<color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<connections>
<action selector="loginBtnPressed:" destination="j0X-k4-h6H" eventType="touchUpInside" id="JXM-1d-w7g"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" hasAttributedTitle="YES" translatesAutoresizingMaskIntoConstraints="NO" id="lST-pS-LgB">
<rect key="frame" x="16" y="505" width="74" height="43"/>
<state key="normal">
<attributedString key="attributedTitle">
<fragment content="Sign Up!">
<attributes>
<color key="NSColor" red="0.9953400424421841" green="0.99264980188931795" blue="1" alpha="1" colorSpace="calibratedRGB"/>
<font key="NSFont" size="18" name="HelveticaNeue"/>
<paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural"/>
</attributes>
</fragment>
</attributedString>
</state>
<connections>
<action selector="signUpBtnPressed:" destination="j0X-k4-h6H" eventType="touchUpInside" id="xyv-T0-hVb"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="BFX-Ad-idn">
<rect key="frame" x="173" y="506" width="131" height="43"/>
<state key="normal" title="Forgot Password?">
<color key="titleColor" red="0.99534004239999996" green="0.99264980189999996" blue="1" alpha="1" colorSpace="calibratedRGB"/>
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
</button>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</view>
<navigationItem key="navigationItem" id="JtB-YG-RXM"/>
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4"/>
<connections>
<outlet property="forgotPassBtn" destination="BFX-Ad-idn" id="neV-au-ZVa"/>
<outlet property="password" destination="now-tn-sIq" id="YQF-lw-DUN"/>
<outlet property="signIn" destination="ALE-x0-k9I" id="mOR-kB-ZID"/>
<outlet property="signUpButton" destination="lST-pS-LgB" id="Foa-6z-LBJ"/>
<outlet property="userEmailField" destination="gFr-9c-756" id="xPA-UK-gem"/>
<segue destination="kZ0-PQ-f7W" kind="show" identifier="LoginToHomeSegue" id="7ie-yW-8jM"/>
<segue destination="6Yk-7p-Ylr" kind="show" identifier="signUpSegue" id="Lte-65-p9s"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="6qe-4m-7Cy" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-273" y="1027"/>
</scene>
<!--Sign In-->
<scene sceneID="SxD-Po-d4C">
<objects>
<viewController title="Sign In" id="dsv-bM-qgc" customClass="SignInController" customModule="GetHip" customModuleProvider="target" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="BqE-PA-y7k"/>
<viewControllerLayoutGuide type="bottom" id="d3F-vg-2MJ"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="ZUX-lP-V5A">
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="sAc-4h-398">
<rect key="frame" x="87" y="90" width="150" height="150"/>
</imageView>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Name" textAlignment="center" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="t1a-J1-BHH">
<rect key="frame" x="-3" y="303" width="325" height="30"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<textInputTraits key="textInputTraits"/>
</textField>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Username" textAlignment="center" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="wbB-YU-CFd">
<rect key="frame" x="-3" y="331" width="325" height="30"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<textInputTraits key="textInputTraits"/>
</textField>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Email" textAlignment="center" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="TZI-98-3nh">
<rect key="frame" x="-2" y="359" width="325" height="30"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<textInputTraits key="textInputTraits"/>
</textField>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Password" textAlignment="center" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="epf-V1-rcM">
<rect key="frame" x="-3" y="387" width="325" height="30"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<textInputTraits key="textInputTraits"/>
</textField>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8lW-PH-WAb">
<rect key="frame" x="0.0" y="533" width="320" height="35"/>
<color key="backgroundColor" red="0.097259112270000003" green="0.60830058499999995" blue="1" alpha="1" colorSpace="calibratedRGB"/>
<state key="normal" title="Save">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<connections>
<action selector="saveNewProfile:" destination="dsv-bM-qgc" eventType="touchUpInside" id="NQ8-4Y-OtT"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Ify-XA-8uy">
<rect key="frame" x="70" y="248" width="180" height="30"/>
<state key="normal" title="Change Photo">
<color key="titleColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<connections>
<action selector="chngePhoto:" destination="dsv-bM-qgc" eventType="touchUpInside" id="YSc-B1-dfo"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</view>
<navigationItem key="navigationItem" title="Account Creation" id="wal-Nl-HBB">
<barButtonItem key="backBarButtonItem" title="Cancel" id="K3n-PS-AzS"/>
</navigationItem>
<simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4"/>
<connections>
<outlet property="chngPhotoBtn" destination="Ify-XA-8uy" id="wSI-a9-Mhf"/>
<outlet property="emailField" destination="TZI-98-3nh" id="63f-tp-CBg"/>
<outlet property="nameField" destination="t1a-J1-BHH" id="KUr-LL-LJk"/>
<outlet property="passField" destination="epf-V1-rcM" id="KbC-NJ-GEZ"/>
<outlet property="profilePic" destination="sAc-4h-398" id="rlt-kj-GBV"/>
<outlet property="saveBtn" destination="8lW-PH-WAb" id="7lt-lh-9gs"/>
<outlet property="userField" destination="wbB-YU-CFd" id="rQn-dc-zWM"/>
<segue destination="i3K-xv-zw1" kind="show" identifier="SignedUpSegue" id="4Cw-Wg-nXy"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="L2S-Q5-7iA" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="671" y="1027"/>
</scene>
<!--Navigation Controller-->
<scene sceneID="xtu-tQ-Tcf">
<objects>
<navigationController id="6Yk-7p-Ylr" sceneMemberID="viewController">
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4"/>
<navigationBar key="navigationBar" contentMode="scaleToFill" id="fzT-rL-U19">
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
</navigationBar>
<connections>
<segue destination="dsv-bM-qgc" kind="relationship" relationship="rootViewController" id="T0z-62-dtc"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="RJI-Lv-OTf" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="205" y="1365"/>
</scene>
<!--Login View Controller--> <!--Login View Controller-->
<scene sceneID="VdH-cE-Gd7"> <scene sceneID="VdH-cE-Gd7">
<objects> <objects>
@ -24,7 +201,7 @@
</viewController> </viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="i4i-Mt-4g3" userLabel="First Responder" sceneMemberID="firstResponder"/> <placeholder placeholderIdentifier="IBFirstResponder" id="i4i-Mt-4g3" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects> </objects>
<point key="canvasLocation" x="671" y="362"/> <point key="canvasLocation" x="1123" y="2058"/>
</scene> </scene>
<!--Friend Request View Controller--> <!--Friend Request View Controller-->
<scene sceneID="cB3-Zf-GpF"> <scene sceneID="cB3-Zf-GpF">
@ -145,6 +322,23 @@
</objects> </objects>
<point key="canvasLocation" x="41" y="-831"/> <point key="canvasLocation" x="41" y="-831"/>
</scene> </scene>
<!--Navigation Controller-->
<scene sceneID="0Ep-TB-6TC">
<objects>
<navigationController id="kZ0-PQ-f7W" sceneMemberID="viewController">
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4"/>
<navigationBar key="navigationBar" contentMode="scaleToFill" id="hFF-LE-Tsc">
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
</navigationBar>
<connections>
<segue destination="i3K-xv-zw1" kind="relationship" relationship="rootViewController" id="Vuv-dQ-1xi"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="tIK-cA-5MW" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="186" y="717"/>
</scene>
<!--View Controller--> <!--View Controller-->
<scene sceneID="IwM-WG-Tkx"> <scene sceneID="IwM-WG-Tkx">
<objects> <objects>
@ -169,6 +363,23 @@
</objects> </objects>
<point key="canvasLocation" x="41" y="-131"/> <point key="canvasLocation" x="41" y="-131"/>
</scene> </scene>
<!--Navigation Controller-->
<scene sceneID="WEO-rS-n1G">
<objects>
<navigationController id="CzG-yI-Fm4" sceneMemberID="viewController">
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4"/>
<navigationBar key="navigationBar" contentMode="scaleToFill" id="CiR-xu-hkL">
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
</navigationBar>
<connections>
<segue destination="j0X-k4-h6H" kind="relationship" relationship="rootViewController" id="Xce-i2-SEV"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="mbC-CF-JRB" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-743" y="1027"/>
</scene>
<!--Friends List View Controller--> <!--Friends List View Controller-->
<scene sceneID="f64-9e-nxp"> <scene sceneID="f64-9e-nxp">
<objects> <objects>
@ -256,6 +467,7 @@
</connections> </connections>
</barButtonItem> </barButtonItem>
</navigationItem> </navigationItem>
<simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4"/> <simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4"/>
<connections> <connections>
<outlet property="searchDisplayController" destination="HND-c4-uRE" id="EAG-al-7RJ"/> <outlet property="searchDisplayController" destination="HND-c4-uRE" id="EAG-al-7RJ"/>
@ -346,6 +558,7 @@
</subviews> </subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</view> </view>
<navigationItem key="navigationItem" id="B4L-4B-4wh"/>
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4"/> <simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4"/>
<connections> <connections>
<outlet property="CreateAPartyBtn" destination="iPz-hc-0g2" id="LS0-K7-TZL"/> <outlet property="CreateAPartyBtn" destination="iPz-hc-0g2" id="LS0-K7-TZL"/>
@ -522,7 +735,7 @@
<segue destination="CpB-9L-oYx" kind="show" identifier="DisplayNameSegue" id="833-r9-p13"/> <segue destination="CpB-9L-oYx" kind="show" identifier="DisplayNameSegue" id="833-r9-p13"/>
<segue destination="O66-YD-dIP" kind="show" identifier="EmailSegue" id="dXF-h4-Qgp"/> <segue destination="O66-YD-dIP" kind="show" identifier="EmailSegue" id="dXF-h4-Qgp"/>
<segue destination="JcU-T3-nLI" kind="show" identifier="PhotoSegue" id="w90-PF-6yk"/> <segue destination="JcU-T3-nLI" kind="show" identifier="PhotoSegue" id="w90-PF-6yk"/>
<segue destination="6mR-Ay-Hzp" kind="show" identifier="LogOutSegue" id="S3P-BM-hz2"/> <segue destination="j0X-k4-h6H" kind="presentation" identifier="LogOutSegue" id="5Ml-AJ-rNB"/>
</connections> </connections>
</viewController> </viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="Qjc-mB-GgZ" userLabel="First Responder" sceneMemberID="firstResponder"/> <placeholder placeholderIdentifier="IBFirstResponder" id="Qjc-mB-GgZ" userLabel="First Responder" sceneMemberID="firstResponder"/>
@ -785,7 +998,7 @@
<viewControllerLayoutGuide type="bottom" id="hSQ-bx-ISt"/> <viewControllerLayoutGuide type="bottom" id="hSQ-bx-ISt"/>
</layoutGuides> </layoutGuides>
<view key="view" contentMode="scaleToFill" id="Qhp-1X-VsE"> <view key="view" contentMode="scaleToFill" id="Qhp-1X-VsE">
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/> <rect key="frame" x="0.0" y="64" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews> <subviews>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="m2x-Bt-FQ4"> <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="m2x-Bt-FQ4">
@ -817,14 +1030,22 @@
<inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/> <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
</collectionViewFlowLayout> </collectionViewFlowLayout>
<cells> <cells>
<collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="BVr-Xk-KSt"> <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="InvitedCollectionCell" id="BVr-Xk-KSt" customClass="InvitedCollectionViewCell" customModule="GetHip" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="50" height="50"/> <rect key="frame" x="0.0" y="0.0" width="50" height="50"/>
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask"/>
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
<rect key="frame" x="0.0" y="0.0" width="50" height="50"/> <rect key="frame" x="0.0" y="0.0" width="50" height="50"/>
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zAu-OX-pTL">
<rect key="frame" x="6" y="6" width="38" height="38"/>
</imageView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
</view> </view>
<connections>
<outlet property="friendImage" destination="zAu-OX-pTL" id="gKR-ca-Nng"/>
</connections>
</collectionViewCell> </collectionViewCell>
</cells> </cells>
</collectionView> </collectionView>
@ -832,6 +1053,7 @@
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</view> </view>
<navigationItem key="navigationItem" id="Agu-kd-wvl"/> <navigationItem key="navigationItem" id="Agu-kd-wvl"/>
<simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4"/> <simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4"/>
<connections> <connections>
<outlet property="AddMore" destination="m2x-Bt-FQ4" id="mHd-3O-0yy"/> <outlet property="AddMore" destination="m2x-Bt-FQ4" id="mHd-3O-0yy"/>
@ -927,7 +1149,7 @@
</slider> </slider>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="sFb-YR-QlX"> <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="sFb-YR-QlX">
<rect key="frame" x="138" y="505" width="44" height="43"/> <rect key="frame" x="138" y="505" width="44" height="43"/>
<state key="normal" image="StarPlayer.png"> <state key="normal" image="Pause-52.png">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state> </state>
<connections> <connections>
@ -1242,6 +1464,7 @@
</scene> </scene>
</scenes> </scenes>
<resources> <resources>
<image name="1x.png" width="375" height="667"/>
<image name="Accept.png" width="28" height="28"/> <image name="Accept.png" width="28" height="28"/>
<image name="Add More.png" width="152" height="36"/> <image name="Add More.png" width="152" height="36"/>
<image name="Cancel.png" width="28" height="28"/> <image name="Cancel.png" width="28" height="28"/>
@ -1251,12 +1474,16 @@
<image name="Home Copy.png" width="34" height="34"/> <image name="Home Copy.png" width="34" height="34"/>
<image name="No Friend Requests i5.png" width="320" height="568"/> <image name="No Friend Requests i5.png" width="320" height="568"/>
<image name="Party.png" width="81" height="41"/> <image name="Party.png" width="81" height="41"/>
<image name="Pause-52.png" width="52" height="52"/>
<image name="Send Invites Button.png" width="375" height="46"/> <image name="Send Invites Button.png" width="375" height="46"/>
<image name="Send.png" width="152" height="24"/> <image name="Send.png" width="152" height="24"/>
<image name="Settings@3x.png" width="116" height="113"/> <image name="Settings@3x.png" width="116" height="113"/>
<image name="Star@3x.png" width="172" height="166"/> <image name="Star@3x.png" width="172" height="166"/>
<image name="StarPlayer.png" width="44" height="42"/>
<image name="Tap Circle.png" width="28" height="27"/> <image name="Tap Circle.png" width="28" height="27"/>
<image name="Turntable@3x.png" width="434" height="434"/> <image name="Turntable@3x.png" width="434" height="434"/>
</resources> </resources>
<inferredMetricsTieBreakers>
<segue reference="Xce-i2-SEV"/>
<segue reference="dYP-IJ-p2K"/>
</inferredMetricsTieBreakers>
</document> </document>

View File

@ -20,8 +20,10 @@ protocol PartyServiceManagerDelegate {
} }
enum PeerType : Int { enum PeerType : Int {
case Host = 0 case Host_Creator = 0
case Guest = 1 case Guest_Creator = 1
case Host_Invited = 2
case Guest_Invited = 3
} }
enum HostSignalType: String { enum HostSignalType: String {
@ -115,6 +117,17 @@ class PartyServiceManager: NSObject {
println("Stopped Browsing for peers") println("Stopped Browsing for peers")
} }
//Stop all services
func stopAllServices(){
stopBrowsing()
stopListening()
self.serviceBrowser.delegate = self
self.serviceAdvertiser.delegate = self
self.serviceBrowser = nil
self.serviceAdvertiser = nil
self.session = nil
}
//Audio Streaming methods //Audio Streaming methods
func openOutputStream() -> NSMutableArray{ func openOutputStream() -> NSMutableArray{
@ -200,6 +213,7 @@ extension PartyServiceManager: MCNearbyServiceAdvertiserDelegate{
func advertiser(advertiser: MCNearbyServiceAdvertiser!, didReceiveInvitationFromPeer peerID: MCPeerID!, withContext context: NSData!, invitationHandler: ((Bool, MCSession!) -> Void)!) { func advertiser(advertiser: MCNearbyServiceAdvertiser!, didReceiveInvitationFromPeer peerID: MCPeerID!, withContext context: NSData!, invitationHandler: ((Bool, MCSession!) -> Void)!) {
NSLog("%@", "invitingPeer: \(peerID)") NSLog("%@", "invitingPeer: \(peerID)")
self.setRole(PeerType(rawValue: 3)!)
invitationHandler(true, self.session) invitationHandler(true, self.session)
} }
} }

View File

@ -66,6 +66,11 @@ class PendingRequestViewController: UITableViewController {
}) })
}) })
var params = NSMutableDictionary()
params.setObject(object!.objectForKey("OtherUser")!.objectForKey("username") as! String!, forKey: "otherUser")
PFCloud.callFunctionInBackground("alertAcceptedFriend", withParameters: params as [NSObject : AnyObject])
} }
}) })
}) })

View File

@ -11,7 +11,7 @@ import UIKit
class SettingsTableViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { class SettingsTableViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
// var manager = UserParseDataSource() // var manager = UserParseDataSource()
var user = [] var user = []
var party: PartyServiceManager!
@IBOutlet weak var logOutBtn: UIButton! @IBOutlet weak var logOutBtn: UIButton!
@IBOutlet weak var table: UITableView! @IBOutlet weak var table: UITableView!
@ -23,6 +23,7 @@ class SettingsTableViewController: UIViewController, UITableViewDataSource, UITa
@IBAction func logOutUser(sender: UIButton) { @IBAction func logOutUser(sender: UIButton) {
self.party.stopAllServices()
PFUser.logOut() PFUser.logOut()
if PFUser.currentUser() == nil { if PFUser.currentUser() == nil {
@ -33,8 +34,9 @@ class SettingsTableViewController: UIViewController, UITableViewDataSource, UITa
} }
func setData(usr:[UserParseData]){ func setData(usr:[UserParseData], prty: PartyServiceManager){
self.user = usr self.user = usr
self.party = prty
} }
override func viewDidLoad() { override func viewDidLoad() {

View File

@ -0,0 +1,121 @@
//
// SignInController.swift
// GetHip
//
// Created by Okechi on 2/14/16.
// Copyright (c) 2016 Kroleo. All rights reserved.
//
import UIKit
class SignInController: UIViewController, UINavigationControllerDelegate, UIImagePickerControllerDelegate {
@IBOutlet var nameField: UITextField!
@IBOutlet var userField: UITextField!
@IBOutlet var emailField: UITextField!
@IBOutlet var passField: UITextField!
@IBOutlet var saveBtn: UIButton!
@IBOutlet var chngPhotoBtn: UIButton!
@IBOutlet var profilePic: UIImageView!
private var picker = UIImagePickerController()
@IBAction func saveNewProfile(sender: UIButton){
var user = PFUser()
var img:PFFile = PFFile(data: UIImagePNGRepresentation(self.profilePic.image))!
user.username = userField.text!
user.password = passField.text!
user.email = emailField.text!
user.setObject(nameField.text!, forKey: "displayName")
user.setObject(img, forKey: "profilePicture")
//sign up new user
user.signUpInBackgroundWithBlock({
(succeeded: Bool, error: NSError?) -> Void in
if error == nil {
self.performSegueWithIdentifier("SignedUpSegue", sender: self)
}
else{
}
})
}
@IBAction func chngePhoto(sender: UIButton){
let captureMenu = UIAlertController(title: nil, message:nil, preferredStyle: .ActionSheet)
let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel, handler: {
(alert: UIAlertAction!) -> Void in
})
let cameraAction = UIAlertAction(title: "Take a New Pic", style: .Default, handler: {
(alert: UIAlertAction!) -> Void in
self.picker.allowsEditing = false
self.picker.sourceType = UIImagePickerControllerSourceType.Camera
self.picker.cameraCaptureMode = .Photo
self.presentViewController(self.picker, animated: true, completion: nil)
})
let galleryAction = UIAlertAction(title: "Select a Profile Pic", style: .Default, handler: {
(alert: UIAlertAction!) -> Void in
self.picker.allowsEditing = false
self.picker.sourceType = .PhotoLibrary
self.presentViewController(self.picker, animated: true, completion: nil)
})
captureMenu.addAction(galleryAction)
captureMenu.addAction(cameraAction)
captureMenu.addAction(cancelAction)
self.presentViewController(captureMenu, animated: true, completion: nil)
}
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.title = "Create An Account"
self.chngPhotoBtn.layer.borderWidth = 1
self.chngPhotoBtn.layer.cornerRadius = 5
self.chngPhotoBtn.layer.borderColor = UIColor.blackColor().CGColor
self.picker.delegate = self
self.profilePic.layer.cornerRadius = self.profilePic.frame.size.width/2
self.profilePic.backgroundColor = UIColor.grayColor()
//add cancel bar to navigation bar
self.navigationController?.navigationBarHidden = false
self.navigationController?.navigationItem.leftBarButtonItem?.title = "Cancel"
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
}
*/
}
extension SignInController: UIImagePickerControllerDelegate{
//MARK: -Image Picker Delegate
func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject : AnyObject]!) {
self.profilePic.image = image
}
func imagePickerControllerDidCancel(picker: UIImagePickerController) {
dismissViewControllerAnimated(true, completion: nil)
}
}

View File

@ -6,6 +6,7 @@
// Copyright (c) 2016 Kroleo. All rights reserved. // Copyright (c) 2016 Kroleo. All rights reserved.
// //
//DEPRECATED WILL DELETE WHEN PROJECT COMPLETED
import UIKit import UIKit
class SignUpViewController: PFSignUpViewController{ class SignUpViewController: PFSignUpViewController{

View File

@ -18,9 +18,7 @@ class TestInviteFriendsController: UIViewController, UITableViewDelegate, UITabl
@IBOutlet weak var table: UITableView! @IBOutlet weak var table: UITableView!
@IBAction func cancelInvites(sender: UIBarButtonItem) { @IBAction func cancelInvites(sender: UIBarButtonItem) {
self.partyData.stopBrowsing() //println("Browser service deinitialized and browser deinitialized")
self.partyData.serviceBrowser = nil
println("Browser service deinitialized and browser deinitialized")
self.parentViewController?.dismissViewControllerAnimated(true, completion: nil) self.parentViewController?.dismissViewControllerAnimated(true, completion: nil)
} }
@ -98,7 +96,7 @@ class TestInviteFriendsController: UIViewController, UITableViewDelegate, UITabl
cell!.proImage.backgroundColor = UIColor.grayColor() cell!.proImage.backgroundColor = UIColor.grayColor()
} }
else{ else{
cell!.proImage.image = friend.profileImg.image!
} }
//rounds uiimage and configures UIImageView //rounds uiimage and configures UIImageView

View File

@ -61,8 +61,6 @@ class ViewController: UIViewController, PFLogInViewControllerDelegate, PFSignUpV
} }
func presentLoggedInAlert() { func presentLoggedInAlert() {
self.performSegueWithIdentifier("HomeScreenSegue", sender: nil) self.performSegueWithIdentifier("HomeScreenSegue", sender: nil)
} }