Showing posts with label and transfer to the FavoritesViewController it says there are no elements in the array... First Vie. Show all posts
Showing posts with label and transfer to the FavoritesViewController it says there are no elements in the array... First Vie. Show all posts
on Sunday, April 19, 2015

I am trying to segue an array filled with Strings from the FactsViewController to the FavoritesViewController, but for some reason when I add some elements to the array, run the code, and transfer to the FavoritesViewController it says there are no elements in the array...


First View Controller:



import UIKit


class FactsViewController: UIViewController {



@IBOutlet var factsLabel: UILabel!
@IBOutlet var nextButton: UIButton!
@IBOutlet var previousButton: UIButton!
@IBOutlet var favoriteButton: UIButton!
var factNumber: Int = 0
var i = 0
var favoriteFactsList: [String] = []
var factsList: [String] = ["Fact 1", "Fact 2", "Fact 3", "Fact 4"]

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
factsLabel?.text = factsList[factNumber]
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

// Segue array to Favorites ViewController
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var destinationViewController: FavoritesViewController = segue.destinationViewController as FavoritesViewController
var arrayToSegue: [String] = favoriteFactsList
destinationViewController.favoriteList = arrayToSegue
}

// Next Button
@IBAction func nextButton(UIButton: AnyObject) {
factNumber++

if(factNumber >= factsList.count - 1) {
factNumber = factsList.count - 1
}

factsLabel.text = factsList[factNumber]
}

// Previous Button
@IBAction func previousButton(UIButton: AnyObject) {
factNumber--

if(factNumber <= 0) {
factNumber = 0
}

factsLabel.text = factsList[factNumber]
}

// Favorite Button
@IBAction func favoriteButton(UIButton: AnyObject) {
favoriteFactsList.append("\(factsList[factNumber])")
NSLog(String(favoriteFactsList.count))
}

// Present Favorites ViewController
@IBAction func favoritesViewController(UIButton: AnyObject) {
let favoritesViewController = self.storyboard?.instantiateViewControllerWithIdentifier("favoritesStoryBoard") as FavoritesViewController
self.presentViewController(favoritesViewController, animated: true, completion: nil)
}


}


Second View Controller:



import UIKit


class FavoritesViewController: FactsViewController {



@IBOutlet var favoriteFactsLabel: UILabel!
@IBOutlet var favoriteNextButton: UIButton!
@IBOutlet var favoritePreviousButton: UIButton!

var favoriteList: [String] = [String]()
var favoriteFactNumber: Int = 0

override func viewDidLoad() {
super.viewDidLoad()
factsList = favoriteFactsList

NSLog("\(favoriteFactsList.count)")

if(favoriteList.count == 0) {
favoriteFactsLabel.text = "Sorry, You Have Not Favorited Any Facts Yet"
favoriteNextButton.hidden = true
favoritePreviousButton.hidden = true
}
}

@IBAction func favoriteNextButton(UIButton: AnyObject) {
favoriteFactNumber++

if(favoriteFactNumber >= favoriteList.count - 1) {
favoriteFactNumber = favoriteList.count - 1
}

favoriteFactsLabel.text = favoriteList[favoriteFactNumber]
}

@IBAction func favoritePreviousButton(UIButton: AnyObject) {
favoriteFactNumber--

if(favoriteFactNumber <= 0) {
favoriteFactNumber = 0
}

favoriteFactsLabel.text = favoriteList[favoriteFactNumber]
}

override func favoriteButton(UIButton: AnyObject) {
favoriteList.append("\(factsList[factNumber])")
}

@IBAction func returnButton(UIButton: AnyObject) {
let factsViewController = self.storyboard?.instantiateViewControllerWithIdentifier("factsStoryBoard") as FactsViewController
self.presentViewController(factsViewController, animated: true, completion: nil)
}


}


Why will my facts array not segue from the FactsViewController to the FavoritesViewController?