281
votes

I got an error on Xcode saying that there was no information about the view controller.

Could not insert new outlet connection: Could not find any information for the class named

Why is this happening?

Screenshot 1

19
I think this has been asked before: stackoverflow.com/questions/17735182/…Tapani
I simply quitted Xcode, then re-open it. the compiler will re-load all files and it can detect the file you are looking forJane chicken
Check you don't already have an unconnected outlet in your view controller file. I discovered that I did. After I deleted it I had no issues.Kex
For me none of above solutions worked.I had to delete view controller, which i copied and pasted again in my storyboard to reuse that.Then I dragged a new view controller in storyboard and every thing got fine :). I hope it might help someone with same problem.Arslan Saleem
This is a BUG in XCode, and I don't know why they don't fix it. You have to close XCode and re open. When you do try again to put the outlets, but this time leave a bunch of ENTERS before making it. You don't have to delete anything or waste your time on other options... This will solve your problems.mavesonzini

19 Answers

744
votes

Here are some things that can fix this (in increasing order of difficulty):

  • Clean the project (Product > Clean)
  • Manually paste in

    @IBOutlet weak var viewName: UIView!
    // or
    @IBAction func viewTapped(_ sender: Any) { }
    

    and control drag to it. (Change type as needed.) Also see this.

  • Completely close Xcode and restart your project.

  • Delete the Derived Data folder (Go to Xcode > Preferences > Locations and click the gray arrow by the Derived Data folder. Then delete your project folder.)
  • Click delete on the class, remove reference (not Move to Trash), and add it back again. (see this answer)
136
votes

Or if none of the above works, type out the name of the outlet into the file first @IBOutlet weak var headerHeightConstraint: NSLayoutConstraint! and then click and drag from the outlet in the nib to the variable you just programmatically created. It should work without any of the hassle of cleaning, building, and deleting anything.

59
votes

Just perform the two following steps to get rid of this error

  1. Clean project using Product > clean
  2. Run the project

Now try to add the action or outlet. That's it.

Happy Coding

49
votes

None of the tips in the best answer worked for me. Was going crazy. Then noticed that the Assistant Editor had somehow gotten set to Manual and I was on the ViewController.swift (Interface) instead of the ViewController.swift file.

Changed that and problem solved. A bit embarrassing but hey, we are all learning.

enter image description here

19
votes

Here are the steps solved for me:

  1. Remove Class name reference from View(storyboard/xib) and save;
  2. Add Class name again and save;
  3. Clean and Build;

Done !

10
votes

I had the same issue. I tired below solutions but didn’t worked :

  1. Clean Project (cmd + shift + k) and even Clean Project Build (cmd + shift + alt + k)
  2. Deleted Derived data and Module Cache content

Below workaround to this issue :

  1. Move to source code file and write the IBOutlet / IBAction manually (copy paste preferred)

Screenshot 1

  1. Then move to Storyboard file and Open Utilites window
  2. Goto Connection Inspector
  3. Then Connect the IBOutlet and IBAction written in source file with Interface Builder.

Screenshot 2

8
votes

I had the same problem. I realised than in X-Code Manual item was selected when I tried to create an outlet by control-drag

enter image description here

After I set it to automatic it worked

enter image description here

7
votes

I solved this problem by programmatically creating the Labels and Textfields, and then Command-Dragged from the little empty circles on the left of the code to the components on the Storyboard. To illustrate my point: I wrote @IBOutlet weak var HelloLabel: UILabel!, and then pressed Command and dragged the code into the component on the storyboard.

6
votes
  1. Close the project you are working on with.
  2. Delete your project's【DerivedData】folder. (This folder may inside your project's folder, or inside
    ~/Library/Developer/Xcode/DerivedData/
    (your project)/) or somewhere else that was setup by you.
  3. restart your project.
4
votes

I got this bug when I renamed the class. Then I solved it just by following the below steps

  • In Xcode Menu -> Product -> Clean
  • Restart the Xcode
4
votes

I found an easier workaround as I this bug can be found on XCODE 9.

Step one go to your viewcontroller and manually write the property you want to connect as the below example, make sure you use the below format.

@IBOutlet weak var questionsStackView: UIStackView!

Step two go to your storyboard and connect your view or whatever your trying to connect to the property you created in step 1.

The above will save you time of removing and cleaning derived data.

3
votes

Please perform the following two steps only to get rid of this error.

1.  Clean Project using Product -> clean.
2.  Run the Project.

Now try to add/Connect the actions or outlets.

Working Fine for me for many times.

2
votes

In my case this was bc I chose a new UIViewController file in IB and then tried to ctrl-drag to this new controller without first removing the previous connections in the Connections Inspector. Remove those first and try again.

2
votes

For me it worked when on the right tab > Localization, I checked English check box. Initially only Base was checked. After that I had no more problems. Hope this helps!

2
votes

enter image description here

I selected Automatic option to select the ViewController.swift file. And then I can able to take outlets.

1
votes

It happened when I added a Swift file into an Objective-C project .
So , in this situation what you can do is . .

  • Select MY_FILE.Swift >> Delete >> Remove Reference
  • Select MY_FOLDER >> Add MY_FILE.Swift
  • Voila ! You are good to go .
0
votes

Simplest solution:- I used xCode 7 and iOS 9.

in your .m

delete #import "VC.h"

save .m and link your outlet again it work fine.

0
votes

I used xCode 7 and iOS 9.

in your .m

delete #import "VC.h"

save .m and link your outlet again it work fine.

in your .m

add #import "VC.h"

save .m

0
votes

None of this worked for me but I did figure this out.

Inside the storyboard I copied the corresponding ViewController into the clipboard and deleted it, afterwards I pasted it again.

Suddenly everything was working like a charm again!