In fact, this is not just a data transfer problem, as it is a matter of managing the program and transferring the data together. Even you will have to rethink the idea of your application, since you want to use the storyboard without the meaning of the storyboard, it is up to you, and I hope that you have every reason to do what you do.
Therefore, when you decided not to use segue, you lost a new and convenient way to create a new controller and transfer data with it, and you need to transfer control and data in two different steps. When you instantiate another scene in the storyboard (as with instantiateViewControllerWithIdentifier :), you simply created a new controller and passed the control, but not the data. Think about it when you instantiated a new controller from xib in the old way (so you should use initWithCoder: or awakeFromNib in the second view controller, since the storyboard will not call initWithName: bundle :), but it didn’t do anything else.
Thus, you will have a new controller (it is called in the personal section of the second storyboard) that hangs in the universe without any relationship or connection with anything else (as the image in the storyboard mode illustrates well), and you can do it what you would like.
So, you want to do something, and you need the data from the previous storyboard (ViewController). You need to provide this data in the second storyboard (ViewController), and, as you know, there are many solutions for this that were available a long time before there was even a storyboard.
So, regarding your code, “data transfer” depends on your design, whether the two controllers are subclasses of each other or even ...
If you don’t like dealing with a subclass and decoupling them as much as possible, the best way is to simply make the property of your data in the first controller and reference them from the second (after importing the first. H file) and just refer to it in the viewDidLoad file or in initWithCoder : or somewhere where you need them, as
secondViewControllerdata = firstViewControllerdata.thatDataProperty
Of course, you can do the same thing in reverse order and create a property of the second controller and access it in your first view controller.