I've got a warning in Xcode 6 and 7 that says:
"Segues initiated directly from view controllers must have an identifier"
However, when I look at ALL the segues in the storyboard, they all have identifiers, and I call them all programmatically. It's not a show stopper by any means - the app builds and is totally useable. I just don't like warnings.
There are somewhat related questions like this one, but it's not the issue I'm seeing.
Are there places that hidden segues can live? Or a master list of segues that I can look at?
a master list of segues that I can look at
Absolutely. Control click on the storyboard's listing in the Project navigator and choose Open As > Source Code. Now you can read — and search — the storyboard as XML. Look for a <segue ... /> without an identifier attribute.
Once you've followed the suggestions in this post, you might need to restart Xcode. One indication for this is that the warning count is greater than the actual number of warnings that are showing up in the warnings panel. Doing a Clean or Clean Build Folder, rebuild, etc. may not clear this warning. I've experienced this issue with builds as late as Xcode 8.2.1
In my case, I couldn't find a segue without an identifier even when I searched the Storyboard's Source Code (thanks #matt). What I did to remove the warning was:
In the top menu go to Product > Clean
In the top menu go to Product > Alt + Clean (to clean the build folder)
Related
I have an app that displays a ViewController at some point, which includes a GLKView. All defined within a storyboard.
It works just fine, that is, unless you run the app from the phone itself, not launched from within Xcode. Upon presentation of the ViewController and therefore the GLKView, the app instantly crashes.
It doesn't matter if the Installed checkbox is ticked or unticked for the GLKView. Only when I delete it from the storyboard altogether, it won't crash.
Any ideas?
I don't know why these things happen but I would consider them a bug. A similar situation happens when adding a WKWebView directly from storyboard. For both the solution is pretty simple: All you need to do is import the module for it. So in your case in your view controller add:
import GLKit
It seems otherwise the framework is not loaded or something.
With ObjectiveC the problem seems to go a level deeper. It seems that the module must manually be imported. Go to your project settings. Select your target. Select "General". Scroll down to bottom and find "Linked Frameworks and Libraries". Below it find a "+" button and search for "GLKit.framework" and add it. This should fix the issue.
I am having quite the annoying problem with my Xcode storyboard. I have a project controlled through svn version control and everything seems to be copying over fine with the normal merges and commits. When I make a change to the storyboard and commit it, say just a dummy label, and my partner updates his project with the latest commit it shows up fine, just like it is on my own project. However, when my partner adds a dummy label and commits, my update does not show the project on the screen. It only shows the label on the scene viewer. This is also happening with tableviewcontroller's inside of other view controllers, or really anything that he updates. When the app is run the app shows everything that it is expected too, but this does not make sense as the storyboard file is not showing these things. I am not sure what is happening as nothing seemed to be wrong early on. Any help or guidance is appreciated. Here is a picture detailing what I mean.
http://imgur.com/MkJIuhC
If you would like more info about this please leave a comment!
Looks to me like you just need to update the size class when you or your partner opens up your project like so:
and choose whatever size you find appropriate for your app
Today I tried to use a container view in Xcode and when I searched in the bar at the bottom of the Library menu, I could not find it. I have also searched through the entire list and can not find it.
Does anyone have any idea what might be occurring. I am using Xcode 6.4.
Any suggestions will be much appreciated.
It looks like the reason I can't find it is because I am using XIB's and not a storyboard (which is what I used in the past when I used a container view).
Thanks to the other answers which helped me come to this conclusion.
I am using Xcode V6.4 and searched by the name UIContainer/container in the object library section of utilities. and It is showing the container view.
You can find it in your storyboard. See image bellow.
This is definitely a bug that is still present in Xcode 7.3.1.
However, I kept playing with switching tabs and looking into other storyboards to see if I could make it find it from a different file. It turns out that after a navigating thru some of my storyboards and seeing the storyboard form the main editor (instead of doing it from the assistant editor) I was able to find it.
Hope this helps!
Oddly, there seems to be a bug in Xcode 6.4. Once I changed the tab in the lower right navigator and came back to the Objects tab, the search/filter worked again. I had the same exact problem in the same exact version of Xcode.
Like kriztho said, container view won't be listed in the object library when viewing storyboard from the assistant editor for some stupid reason. I'm using Xcode 9, and this is still an issue. Right when I switched storyboard to the standard editor (Cmd + return on Mac), the container view was listed once again in the object library.
My Xcode project using a storyboard entered in a very weird state recently: Xcode keeps building the whole project and notably the storyboard after each keypress. I found no reason for this behavior neither in my project diffing all interesting files (storyboard and project) neither a setting in Xcode (maybe I just could not find it?) Needless to say that this "feature" makes working on my project nearly impossible since the CPU is constantly occupying with rebuilding the storyboard when I type new code. Anybody seen this?
It is caused by the IB_DESIGNABLE definitions in the source header files. Probably it makes problem only if the header file containing IB_DESIGNABLE is included (even implicitly) to the source file you are currently editing.
I did not find a definitive solution how to disable IB_DESIGNABLE and thus compiling the storyboard and the source files continuously. I would appreciate an Xcode flag to disable this temporarily. I tried also surrounding the IB_DESIGNABLE with #ifdef macros but they are considered even if the #ifdef evaluates to false. Commenting out one by one the IB_DESIGNABLE helps but it is not a feasible solution with many IB_DESIGNABLEs.
Update
I finally found a quick way to avoid this annoying behavior. Having the storyboard opened in the active window, disable "Automatically Refresh Views" from the Editor menu. This will stop updating the views in the storyboard editor that use your custom code and thus speed up your development significantly. When you need again the just-in-time compiling to have a visual preview of your custom code, enable this option again (it seems you also have to re-open your storyboard to make it working again).
You may wish to add a key binding to the command, such as command-option-control-A, to easily toggle the behavior on/off. To add a key binding in Xcode, touch command-comma for preferences, choose the Key Bindings tab, use the search bar to find the command, then double-click on the right area to add your desired keystroke.
"Leave it off" approach
Alternately turn "Automatically Refresh Views" off, and never turn it on.
Make a convenient keystroke for "Refresh all views", say command-option-shift-R
As you work, just touch command-option-shift-R from time to time, or as needed. It's generally only necessary to touch command-option-shift-R as you work on the storyboard.
I had this problem and the accepted answer did not work for me.
The problem I had was that I always keep the storyboard open in it's own tab within XCode so that I can access it quickly.
The only way I could fix it was to either close that tab or select a different file (like a normal code file) and then close and reopen XCode. Thereafter it was no longer rebuilding on each keystroke.
Be warned however if you need to open the storyboard to make changes then this problem can sometimes reappear and I will have to repeat the above process.
Can't wait till Apple fixes this as it is very frustrating indeed!
(ノಠ益ಠ)ノ彡┻━┻
I have a project in xCode 6 using Swift (my very first experience developing iOS Apps).
I was having problems with gestures (they are alive even after removing them from storyboard) and decide to delete the ViewController I was having problem. The program compiled as it still exists. Then I decide to delete and remove reference to file main.storyboard and everything works just as before.
I believe that is related to source control
Where are those view controllers and even the storyboard stored?
By using the storyboard, sometimes you are creating some link between your elements and/or some part of your code.
These links will still be, even after deleting the element unless you delete the link itself.
In order to perform good deletion, you should first right click on the element you want to delete and suppress all its links. Then you can safely delete your element: