Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't connect IBOutlet in Interface Builder

I'm having a weird experience. I create any type of iPhone application, add a UIViewController with Xib file. I can edit the xib file with controls and see them rendered if I run. Now i'm trying to add a few IBOutlets to the controller, so I add them to the .h file, synthesize on the .m file. Then i head over to Interface Builder to connect the outlets. I drag the UILabel to the UIView, and then i try to connect the File Owner (which my custom UIViewController), but all that i can select when i try to connect to the UILabel is "view", which is obviosly wrong. So I'm not able to connect IBOutlets to their controls in Interface Builder.

Any ideas?

like image 984
haider Avatar asked Nov 17 '09 02:11

haider


People also ask

How do you declare an IBOutlet property?

If you have a property defined that you want to make accessible to your storyboards, just add the @IBOutlet attribute before your property. Similarly with @IBAction to connect storyboard actions back to code. class MyViewController: UIViewController { @IBOutlet weak var likeButton: UIButton?

What is the difference between IBOutlet and IBAction?

An IBOutlet is for hooking up a property to a view when designing your XIB. An IBAction is for hooking a method (action) up to a view when designing your XIB. An IBOutlet lets you reference the view from your controller code.

Why is IBOutlet weak?

In Mac development an IBOutlet is usually a weak reference: if you have a subclass of NSViewController only the top-level view will be retained and when you dealloc the controller all its subviews and outlets are freed automatically. UiViewController use Key Value Coding to set the outlets using strong references.


2 Answers

I did a combination of the things in this thread and I finally had success.

In Interface builder (not xcode)

  1. File->Reload All Class Files
  2. File->Read Class Files (select MyClass.h)
  3. Reconnect File's Owner by
    a. Setting the Class to "MyClass"
    b. Reconnecting the View to the File's Owner's View

Everything is back to normal now. Weird.

Hope this helps more than it confuses ;-)

like image 105
Kevin Fisher Avatar answered Sep 20 '22 08:09

Kevin Fisher


Had the same problem.

Fixed it by double checking my File's Owner "Class" attribute on the Identity inspector.

like image 30
Suiz Uzcategui Avatar answered Sep 21 '22 08:09

Suiz Uzcategui