0

I know using custom delegate is an option for data traveling, but I want to know what's the best practice, also I have tried many other methods but the array in Destination ViewController always shows nil

Gavin Miller
  • 43,168
  • 21
  • 122
  • 188

2 Answers2

0

Basically, you need to bind the data with the destination viewcontroller.

You have to pass data like this:-

let otherUserInstance = self.storyboard?.instantiateViewControllerWithIdentifier("OtherUserProfileVC") as! OtherUserProfileVC
otherUserInstance.userID = self.data["UserId"]as! String //You can use array or dictionay instead of string
self.navigationController?.pushViewController(otherUserInstance, animated: true)



class OtherUserProfileVC: UIViewController {
    var userID = "" //declare as property of class
}
Salman Ghumsani
  • 3,647
  • 2
  • 21
  • 34
  • actually, I am not performing any navigation, I have 2 view controllers appearing in the same view... –  May 16 '17 at 13:24
  • Here we are giving solution on the basis of normal scenario if you are not cleared your question. So basically this answer only tells us that we need to `bind up` the data with the view controller instance. – Salman Ghumsani May 16 '17 at 13:30
  • @cs832 are you getting my point? – Salman Ghumsani May 16 '17 at 13:32
-1

You may pass data by define array public like this way

var array: NSMutableArray!

class FirstViewController: UIViewController {

 }

and then access it in other class like this way

class SecondViewController: UIViewController 
{        
  override func viewDidLoad()
  {
     super.viewDidLoad()

    array = [1, 2, 3]
  }
}
Jignesh Mayani
  • 6,937
  • 1
  • 20
  • 36
  • why down vote? Give reason. – Jignesh Mayani May 16 '17 at 13:01
  • Using NSMutableArray instead of a Swift array is bad practice. Using it as implicitly unwrapped optional is even worse. And using a global variable like this is also very, very bad practice. So... three errors in six lines. The downvote is not really surprising, in this case, I guess. ;) – Eric Aya May 16 '17 at 13:16
  • yeah using global variables is a very very bad practice.... but thnx for your response –  May 16 '17 at 13:22