Nib/Xib not shown in interface bulider - iphone

While developing a navigation based application from scratch, I added some new uisubview Controller files to my project by the name myview.m, myview.h and myview.xib. After saving it, when i switched to interface builder to carry out linking task but the xib file was not shown by the interface bulider.
I restarted both the applications to fix it, but it didn't work. Please suggest me how to resolve the issue because i can't proceed further.
MAC OSX: 10.6
XCode: 3.2.6
One of the similar issues I faced earlier was that the methods added to .h files were not visible in interface builder, which I resolved by making the interface builder reading the .h file externally from file menu.
but I was unable to resolve the issue with the xib file. Please suggest me some solution.

Its ok if it is not shown by default. Simply mention the name over there. It works.

Related

How to correct "corrupt and unarchivable nib"?

I am writing a macOS app in Swift4. I'm targeting macOS 10.9, so I'm using xibs instead of storyboards.
When I try to run and open the nib via showing the window, it logs an error:
-[NSIBObjectData initWithCoder:]: corrupt and unarchivable nib file
-[MyWindowController loadWindow]: failed to load window nib file '/Users/toadzky/Library/Developer/Xcode/DerivedData/MyProject-cdudiyhqvfaauudsignqhtkqlfeu/Build/Products/Debug/My App.app/Contents/Resources/MyWindow.nib'.
The file is a xib, so i'm not sure if it's just an outdated error message. I'm subclassing NSWindowController and using the init(windowNibName:) constructor for my window controller.
I've tried restarting Xcode, cleaning and rebuilding the project, modifying the xib so xcode will rewrite it, etc. I haven't re-created it from scratch because it's a fairly complex view, and it's time consuming to redo so I'm hoping there's an alternative solution.
Update
I rebuilt the entire XIB from scratch, no copy-paste since I couldn't be sure what was wrong. Everything worked fine until I added some custom formatters using interface builder. Then it broke in the same way. I took them off and it worked again.
Two hours later, I added the custom formatters back and it works fine.
I'm leaving the question open in the hopes that someone will be able to provide some troubleshooting advice for when Xcode decides to arbitrarily not work for a while.
Make sure that in your init method you are initializing the super class and returning self.

"This class is not key value coding-compliant for the key" error when changing project from storyboard to xib files

I had lots of progress in a project which started using both storyboards and xib files. Then I decided to change it all to xib files so that firmwares older than 5.0 could use them. I had some trouble doing that so I created a new project and began copying all of the code and content of the xib files. However, when I ran the project, the debugger gave me the error "This class is not key value coding-compliant for the key gameStarts"(name of an outlet). I already tried cleaning all targets from the DerivedData folder, resetting my iOS simulator, and checking in the connections inspector of the designated xib file for rare outlets, but nothing seems to work. I have searched for hours without success. Help would be appreciated.
It seems that the .xib file has a outlet reference to gameStarts, but in the controller file, there isn't a IBOutlet property gameStarts. The most easy way to check whether you have set it properly in xCode 4 is switching to the xib file, selected the file's owner, click on the triangle on the right of the class name. This should bring you to the class file. I met similar problems before, they were caused by the incorrect reference.
And also find the element which is connected to gameStarts in xib file, re-connect it to your controller. I guess you would have copied the interface from storyboard file.

Unknown class FirstViewController in Interface Builder file

When I run my application i got this
I see in my console this message "Unknown class FirstViewController in Interface Builder file."
I am running TabBar application.
How can I fix this?
It looks like you deleted FirstViewController.h & .m from project, but forgot to change view controller's class in nib file.
Go to project , targets , build phases , compile Sources and add the unknown class ..done.
Right click on Storyboard --> Open As --> Source Code
Find your unknown class name in the storyboard source file. It may be because you have accidentally assigned a custom class name for one of your UIView subclass'.
It is kinda hard to understand your comments, but I think you may have deleted the FirstViewController but forgot to change all the references to it. you may need to go to MainWindow.xib and look for all FirstViewController UI components and delete them
Sometimes it happens when you change target name for some reason, you have then to open storyboard as source file, then search for old target name, replace it with the new name, should work if it is the case, hope it helps.
This can also happen if you use the same package name for multiple projects (if you're being lazy with your provisioning). Go into your user directory, then go to Library/Application Support/iPhone Simulator/[your sdk version]/Applications and delete what's in there. You may also have to delete the app from the device. That will remove any accidental references to files from other projects, which can cause this error.
When you add multi project to Workspace. If you use the same Product Name in your's projects. It can conflict.
Rename Product Name in the projects have a same name.
... Hope this help ....
This happened to me just after Git merge and resolving few conflicts.
It had screwed up my XCode project.
I tried all over the StackOverflow. At first I thought my Custom class .m file hasn't been added to the Compile Sources class list. But it's one case, however even after adding it, it gave me same issue back.
How I resolved:
I kept a backup of my .xib file and its backing custom class .m and .h files.
Then clean the project and try to run the app via XCode (which might not work)
Then re-add the files back to the XCode project and it will work.
Cheers!
This can sometimes happen if you made changes to a VC i.e. deleted prototype cell(s) within a tableview.
If all else fails I find cleaning project and restarting Xcode gets things back on track.

Could not load nib in bundle on iPhone device

I'm trying to test an app I'm developing on my iPhone. To do that I changed the target from Simulator to Device on Xcode. The application is correctly uploaded to the device and it works. The main view is shown but if I try to open a secondary view, the application crashes.
On the iPhone log (I installed the iPhone configuration utility to see the console [is the only way to see the log from iPhone?]) I can see this error:
Could not load NIB in bundle
But, on the simulator it works fine. What's wrong? Any ideas?
I had the same problem and fixed it like so:
Open XCode Target
Click the "Build phases" tab
Click the "Copy bundle resources" section
Click the +
Add the missing Nib file
I've found that sometimes the device is case sensitive and the simulator is not.
What's the filename of your xib?
or
Try uninstalling the app from the simulator and installing it again - the simulator might have an old file left over from a previous run of the app - have you renamed / moved the xib at all during development?
I had a similar problem and was getting the same error. Turns out I was using the full name of the xib file in the attributes panel under "NIB Name:"
Don't use "SomeViewController.xib", just use "SomeViewController" without the ".xib" extension.
I had the same problem when invoking initWithNibName:#"MyViewController"
Changing the invocation to initWithNibName:NSStringFromClass([MyViewController class]) worked well
You can try these things:
Make sure case is correct
Use xib filename without the ".xib" extension
Remove any -(dash) or other special chars, use _(underscore)
Remove the xib file from the project and add back to the Xcode project
Check the build settings and make sure deployment is changed to currect SDK
In my case, the xib simply wasn't being copied into the bundle. Once I added the xib into the "Copy Bundle Resources" step for the application target, everything went fine.
I finally managed to solve that issue with these two steps:
In the view controller files inspector, remove any localization
(just for testing)
Ensure that you have checked the correct target membership
I don't know why it works on the simulator :(
For me, the problem was exactly what FreeAsInBeer said: the nib somehow was missing from the bundle, whereas it had been there before and worked properly in previous versions of the app.
To fix the problem, I did the following:
Select the project in the Project Navigator.
In the project settings select Build Phases.
Expand Copy Bundle Resources.
Scroll down (if necessary) and click on the + button.
In the dialog that appears, click on the Add Other... button.
Browse for the missing .XIB file in the file system.
Build and Run... the missing nib should appear when you run it.
This is just what worked for me when I got that message. Your mileage may vary, since circumstances are not always the same for everyone, but I hope this helps someone who runs into this issue.
-Evan
I ran into the same problem. In my case the nib name was "MyViewController.xib" and I renamed it to "MyView.xib". This got rid of the error.
I was also moving a project from XCode 3 to 4.2. Changing the Path type did not matter.
I had the same error message.
My problem, however was that my language settings on my phone were set on "English" and the Region on "United Kingdom". However, the file that could not be loaded was placed in the de.lproj directory.
Moving the file into the root directory solved it.
A simple mistake that might cause this error is trying to initWithNibName on an imported viewController when you are using a storyboard rather than individual Nib files. If this is the case then just init the controller instead of trying to init with a nib that doesn't exist, or init those fields with nil.
If Storyboard and no nib, change initWithNibName: bundle: to just be init OR initWithNibName:nil bundle:nil
For what its worth, I received this error when one of my tab bar buttons had the wrong class assigned to it.
I've got it to run with delete all of the localization from the xib
In the right window.
Maybe the file is in the localization folder.
I've the same problem. And my solution is remove all Localizations for the view.
I had exactly the behavior you described: works on simulator but get the "Could not load NIB in bundle" when running on the device, and the app remain stuck on the launch image.
In my case the problem was about the MainWindow.xib file that Xcode automatically created with English localization. I am supporting English and Italian in my app and realized that I was missing the localized version of MainWindow.xib for the Italian language.
Because I had no need to localize this file (it's Xcode default to create it localized) I fixed the problem by simply removing the English localization, so the same file is used independently of the localization. Another way to fix the problem would be to add the missing localized version, if you need it.
The app was crashing on the device because my device is configured for Italian language. The simulator instead was set to English and this is why the app run correctly. Just to verify, I set the simulator to Italian language and the app crashed confirming the localization problem.
I also had this problem when I loaded a child view controller from initWithCoder, which is a good place to initialise, but keep in mind you have to add it as an actual child AFTER the view has loaded.
So shift something like this:
[self addChildViewController: self.pageViewController];
[self.view addSubview: self.pageViewController.view];
[self.pageViewController didMoveToParentViewController:self];
...out of your init method and into viewDidLoad. Not saying this is your problem in particular but this may be helpful to others.

XIB File Not Loading Properly In Interface Builder

I was creating a new View-based Application in XCode, adding some outlet and actions, using the IBAction and IBOutlet tags, into the automatically created controller view header file. I then double clicked the 'project_name_ViewController.xib' to launch the interface builder.
However the outlets and actions did not appear in interface builder. The only way I could get them to appear was the close the xib file and reopen it through file -> open command in Interface Builder it's self.
I recently upgraded to Snow Leopard, before that I never had this problem.
Has anyone else come across this?
Xcode is full of strange bugs. I always follow my 15 step arcane black magic ritual before I make an ad-hoc or release build. Any time something like your problem happens, I put it down to the flying monkeys twisting bolts somewhere in Xcode and restart the program (sometimes the computer). That generally fixes it.
Of course with outlets and actions, it's easy to forget to save the source header before you swap over. Make sure to save and build. Errors in the source can stop them from showing up in IB too.