I want to achieve a really simple task—changing the ViewController
of a Container View by pressing a button:
In my example the ViewController1
is embedded into the Container View using Interface Builder. By pressing the Button ViewController2
I want to change the view to the second ViewController.
I’m confused because the Container View itself seems to be a NSView
if I create an Outlet and as far as I know a NSView can’t contain a VC. Really appreciate your help!
maybe this is a late answer but I will post my solution anyways. Hope it helps someone.
I embedded NSTabViewController in ContainerView. Then, in order not to see tabs on the top I did this:
go to NSTabViewController in storyboard
in Attributes inspector change style to be Unspecified
then click on TabView in Tab Bar View Controller, and set style to be "tabless":
After this you need to:
You do this by storing the reference to tabViewController when overriding prepare for segue function. Here is my code:
first add property to the mainViewController
then override this function and keep the reference to tabViewController:
After this you will have reference to tabViewController all set up. Next (last) thing you have to do is make an action for button in order to move to first (or second) view controller, like this:
All the best!
Just note that in order for this to work you have to add storyboard identifiers to your view controllers, which can by going to your storyboard then selecting the Identity Inspector in the right hand pane and then entering the
Storyboard ID
in theIdentity
subcategory.Then this implementation of
ViewController
would achieve what you are looking for.