Unable to connect IBOutlet from storyboard to UIView subclass

天大地大妈咪最大 提交于 2019-11-27 20:33:20

We see this issue sometimes too since Xcode 8, and assume this is a Xcode bug.

As a workaround:

  • Write the outlet in code @IBOutlet weak var myUiElement: UIView!

  • Ctrl + Drag from your outlet to the UI element in the Storyboard

Its basic, but easy to overlook. Make sure the view controller you are dragging the outlet to is labeled as the custom class you created.

Create an outlet like this in Objective-C

@property (nonatomic, weak) IBOutlet UIView *view;

or as in swift 3

@IBOutlet weak var instruction: UILabel?

and then connect it as given in this image.

Sometimes the normal way of connecting action and outlet doesn't work due to subclassing. This way comes handy for such situations.

After trying some of the given solution what finally worked is by restarting the my macbook. It seems like a bug on XCode's side. Oh well.

Things to check if IBOutlet does not connect:

  1. Is the class defined in storyboard?

    Select the UIViewController in storyboard, then on the right side of the screen, select the identity inspector and assign the appropriate class.

  2. Are the type of outlet you defined match the one on storyboard? For example, we connect UIButton, then the outlet should look like that, write the code for the outlet, then connect to the view controller:

    @IBOutlet weak var theButton: UIButton!
    

I've resolved my issue by following process.

  1. Connect your Storyboard view with any other ViewController.
  2. Now, reconnect your desired ViewController with storyboard.

Hope this will work for you!!

Another way just create your button name manually in view controller like this -

@IBOutlet weak var button: UIButton!

then connect your button via drag to view controller as image shown [!

PS:- please clean your derived data also.

1: Assign the class to viewController.

2: Clean your project with Shift-Alt-Cmd-K.

3: First quit Xcode and clear the derived data. going to: ~/Library/Developer/Xcode/DerivedData

press ctrl than drag to swift file and create outlet.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!