Raphael Oliveira
Raphael Oliveira

Reputation: 7841

Unable to link UIViewController IBOutlets with StoryBoard

I have two UIViewControllers (A and B) in storyboard. The A view controller has a property

@property (nonatomic, retain) IBOutlet UIViewController *viewController;

that I want to link via storyboard to B.

The outlet shows under the the IBOutlets section in storyboard menu but I'm unable to link. It might seem strange why I'm trying to do that but I need it. Someone knows how to do that?

Upvotes: 2

Views: 4623

Answers (3)

datinc
datinc

Reputation: 3552

I am a bit late to the party however I put together a segue class to help with this job. View the git repository to see the class in action: https://github.com/datinc/DATOutletSegue.

Basically it uses the identifier of the segue to connect to the parent controller

Upvotes: 0

Raphael Oliveira
Raphael Oliveira

Reputation: 7841

Now I understand what I need to do. I need to create a custom segue to achieve the same result as when you link a UINavigationController to other ViewController and mark as RootViewController. It is done by segue and not by IBOutlet.

Upvotes: 0

DBD
DBD

Reputation: 23213

IBOutlets are connections within a single view controller. Create references to objects inside the view controller so you can use those objects in code.

You cannot create IBOutlets from one view controller to another one. A property is the correct way to go, but you have to assign the property in code. Normally when one view controller creates another one, it might set a reference to itself.

OtherViewController *otherViewController = [OtherViewController alloc] init];
otherViewController.masterViewController = self;
// at this point "otherViewController" has a reference to the current view controller

Upvotes: 6

Related Questions