Blog coding and discussion of coding about JavaScript, PHP, CGI, general web building etc.

Thursday, February 4, 2016

Loaded nib but the view outlet was not set - new to InterfaceBuilder

Loaded nib but the view outlet was not set - new to InterfaceBuilder


I added a new nib file to my project, and all I want to do is have it display on the screen for now.

However, when I click on the toolbar icon that is supposed to take me to the view that I created, I get an NSInternalInconsistencyException with the message:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "..." nib but the view outlet was not set.'

So I opened up my nib file, and I see for the view that there are no referencing outlets set. However, I try to click and drag the circle for "new referencing outlet" to File Owner, but it won't let me...what do I need to do to get my view to display?

Thanks.

Answer by John for Loaded nib but the view outlet was not set - new to InterfaceBuilder


The View Identity - Class Identity was not set. After setting it to the appropriate class, the issue was resolved.

Answer by Josh Justice for Loaded nib but the view outlet was not set - new to InterfaceBuilder


You guys are right, but as I'm a newcomer it took me a little while to figure out all the steps to do that. Here's what worked for me:

  • Open the XIB file causing problems
  • Click on file's owner icon on the left bar (top one, looks like a yellow outlined box)
  • If you don't see the right-hand sidebar, click on the third icon above "view" in your toolbar. This will show the right-hand sidebar
  • In the right-hand sidebar, click on the third tab--the one that looks a bit like a newspaper
  • Under "Custom Class" at the top, make sure Class is the name of the ViewController that should correspond to this view. If not, enter it

Custom class configuration

  • In the right-hand sidebar, click on the last tab--the one that looks like a circle with an arrow in it
  • You should see "outlets" with "view" under it. Drag the circle next to it over to the "view" icon on the left bar (bottom one, looks like a white square with a thick gray outline

Custom class configuration

  • Save the xib and re-run

Answer by Kamil.S for Loaded nib but the view outlet was not set - new to InterfaceBuilder


Just spent more than hour trying to find out why my view property is not set in my view controller upon initiating it from nib. Remember to call "[super initWithNibName...]" inside your view controller's initWithNibName.

Answer by Matt for Loaded nib but the view outlet was not set - new to InterfaceBuilder


My issue with this was caused by having a duplicate nib in the class folder that did not have the view set. xcode seemed to be choosing one nib for a build and then the other the next time I built the project. Just deleted the other one. Looks good. Doh!

Answer by Weini for Loaded nib but the view outlet was not set - new to InterfaceBuilder


I also had the same problem and my issue was that i added an other Localisation (English) to the ViewControllers nib so my App with the Localisation German couldt find the nib with the Localisation English!! Hope this helps anybody!

Answer by DaveDude for Loaded nib but the view outlet was not set - new to InterfaceBuilder


For me, the problem was caused by calling initWithNibName:bundle:. I am using table view cells from a nib file to define entry forms that sit on tableViews. As I don't have a view, doesn't make sense to hook to one. Instead, if I call the initWithStyle: method instead, and from within there, I load the nib file, then things work as expected.

Answer by Michael Stern for Loaded nib but the view outlet was not set - new to InterfaceBuilder


I had the same problem, but a slightly different solution was called for. The problem in this case was the class of the File Owner, rather than the class of the View. To set this, I had to click the "backwards play" icon in the lower left corner of the Interface Builder window, and options then appeared that isolated the characteristics of the File Owner, the First Responder, and the View. Clicking on the first one (a large transparent box), enabled me to then set its custom class as suggested above.

Answer by Stephen J for Loaded nib but the view outlet was not set - new to InterfaceBuilder


I just fixed this in mine. Large project, two files. One was "ReallyLargeNameView" and another was "ReallyLargeNameViewController"

Based on the 2nd answer chosen above, I decided I should clean my build. Nada, but I was still suspect of XCode (as I have two identical classes, should abstract them but eh...) So one's working, one's not. File's owner names are so far as copy and pasted, outlets rehooked up, xCode rebooted, still nothing.

So I delete the similar named class (which is a view). Soon, new error "outlet inside not hooked up" literally was "webView not key value" blah... basically saying "Visual Studio's better". Anyway... I erase the smaller named file, and bam, it works.

XCode is confused by similar-named files. And the project is large enough to need rebooting a bit, that may be part of it.

Wish I had a more technical answer than "XCode is confused", but well, xCode gets confused a lot at this point. Unconfused it the same way I'd help a little kid. It works now, :) Should benefit others if the above doesn't fix anything.

Always remember to clean your builds (by deleting off the simulator too)

Answer by rohit mandiwal for Loaded nib but the view outlet was not set - new to InterfaceBuilder


I can generally fix it by remaking the connection between File's Owner and the view. Control-drag from the File's owner to your View (in IB) and select view from the pop-up menu.

Answer by eselk for Loaded nib but the view outlet was not set - new to InterfaceBuilder


Just had the same error in my project, but different reason. In my case I had an IBOutlet setup with the name "View" in my custom UITableViewController class. I knew "view" was special because that is a member of the base class, but I didn't think View (different case) would also be a problem. I guess some areas of Cocoa are not case-sensitive, and probably loading a xib is one of those areas. So I just renamed it to DefaultView and all is good now.

Answer by Abhilash Reddy kallepu for Loaded nib but the view outlet was not set - new to InterfaceBuilder


select the files owner and goto open the identity inspecter give the class name to which it corresponds to. If none of the above methods works and still you can't see the view outlet then give new referencing outlet Connection to the File's Owner then you can able to see the view outlet. Click on the view Outlet to make a connection between the View Outlet and File's owner. Run the Application this works fine.

Answer by user1951454 for Loaded nib but the view outlet was not set - new to InterfaceBuilder


I had the same problem, but a different solution was called for. The problem in this case was the class of the File Owner was not connected to xib file.

Answer by BrianH for Loaded nib but the view outlet was not set - new to InterfaceBuilder


I'd like to second Stephen J. Some times X Code does just get confused. I just had an experience where I had played around with the UI a lot, and had added and deleted outlets quite a few times. The outlets just would not wire-up any more. I never did figure out a specific reason (I had tried all the solutions above), and I just had to delete the NIB and recreate it from scratch, and in fact had to use a different name for the NIB before it would work. (XCode 4.6.1) Wasted a couple of hours on that.

Answer by OrdoDei for Loaded nib but the view outlet was not set - new to InterfaceBuilder


In my case, the view was not viewed in xib. in xib the View was size = none (4th tab right hand). I set size to Freeform and reload xCode. view was appealed and I set the proper link to View.

Answer by Nathan for Loaded nib but the view outlet was not set - new to InterfaceBuilder


I had the same issue with XCode 4.6.3. I had started out with a couple files named MySettingsView.h and .m but deleted them in favor of MySettingsViewController.h, but despite trying most of the hints mentioned here, it still kept erroring with,

2013-07-05 11:48:17.205 MyApp[39024:c07] * Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "MySettingsView" nib but the view outlet was not set.'

It was evidently still "confused", trying to load MySettingsView.xib instead of MySettingsView Controller.xib. Maybe its "do what I mean" logic is too fancy.

So I worked around the problem by hardcoding the NIB/XIB name in MySettingsViewController.m:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil  {      self = [super initWithNibName:@"MySettingsViewController" bundle:nibBundleOrNil];  

Answer by Shehbaz Khan for Loaded nib but the view outlet was not set - new to InterfaceBuilder


Are you sure you have a UIView (or subclass) assigned to the "view" property of yourViewController?

Right click on "File Owner" in the left pane of the xib for yourViewController and verify that the "view" outlet is set. If not, set it to a view!

this will definetly fix the Issue

Answer by vishal for Loaded nib but the view outlet was not set - new to InterfaceBuilder


For me all the things stated here http://stackoverflow.com/a/6395750/939501 were true but still it was throwing error, reason was I created a View class with name ABCView and then deleted it later I added a view controller as ABCViewController so somehow it was referring to old ABCView in new view controller, I had to delete the ABCViewController and add a new one with different name that solved my issue.

Thanks

Answer by Travis M. for Loaded nib but the view outlet was not set - new to InterfaceBuilder


If you have tried everything and you still get this error, try re-creating the class file from scratch but remember to select the "Also create XIB file" check box. This will auto link up a few items that are not linked when creating these files separately. After this is created, you can likely cut and paste everything onto the new XIB and it should work fine.

I am finding this issue specifically with creating files separately in Swift.

Answer by Justin Middleton for Loaded nib but the view outlet was not set - new to InterfaceBuilder


I ran into something very similar tonight, with a Swift UIViewController subclass. In this case, none of the above fixes worked, but reordering my code a bit did. Net-net, having an extension to the subclass occur before the subclass's definition itself in the same file seems to confuse XCode, despite compiling fine; the fix was to place the extensions after the subclass's definition.

I've posted the details in an answer to this similar question.

Answer by Javier Calatrava Llavera for Loaded nib but the view outlet was not set - new to InterfaceBuilder


This is Josh Justice proposal, but in a graphical way (pictures are mine):

  1. Select File owner
  2. On right hand side panel select custom class.
  3. Enter the custom class name

enter image description here

  1. On right hand side panel select oultets
  2. Drag view outlet to view component

enter image description here

Finally the View Controller is instantiated with the rolling code:

        PTFilterUserVC *aFilterUserVC = [[PTFilterUserVC alloc] initWithNibName:@"FilterVC" bundle:nil];            //OPTIONAL.This is how 'I' am interested in present the view controller.          [self.navigationController pushViewController:aFilterUserVC animated:YES];  

0 comments:

Post a Comment

Popular Posts

Powered by Blogger.