My main.storyboard is not showing up on Xcode - ios

So here are the steps that I do when opening Xcode to make a basic application. I first click on "create a new Xcode project" then I tap on "single view app" for "ios" then I fill out the information such as the name of the app and if I want to use core data etc.. and when I finish and tap on "create" I see no main.storyboard on the left side navigation panel... I do not know if I am doing something right. I initially did everything on the LaunchScreen.storyboard, but when I did something it did not allow me because something called segues..

Select Storyboard in User Interface as shown in the image

Please, select storyboard instead of SwiftUI, as with XCODE 11 by default the value of User Interface is set to SwiftUI and it doesn't include storyboard.

Related

Custom class not automatically showing up - Swift 3 iOS 10.2 Xcode 8

So I have my app set up with two view controllers. The first one is my initiation screen, where the app starts, and the second is one the user can navigate to. I added the second one later on in my development, but when I went to the right column under the identity inspector, my new Cocoa Touch Class file is not populated for me to select. Now if you ask me to just type it in, I've tried that, it does not seem to connect. I've tested it by printing a simple line in the viewDidLoad() of the new second class when it is loaded in the simulator, but nothing is printed. Any help would be greatly appreciated!! Thanks!
EDIT
Easy fix is:
Select the activity indicator on storyboard and go to identity inspector and copy the object id. as image: ObjectID_ActivityIndicator
Right click the storyboard file which has the view controller you are working at.
Open as > Source Code
Press command + F to find and look for the id you copied previously
Paste this: customClass="yourclassname" customModule="moduleNAme" customModuleProvider="target"(don't change this target word, you can choose desired module from identity inspector if any).
Command + S to save it and again right click on storyboard file > openAs> Interface builder
Now select activity indicator again and go to identity inspector. You will now see it there. You can also change it as per requirement.
Enjoy. I faced this problem today and found no help online. My class and module field were greyed out. Tried this fix and it worked.
Note: Make sure your custom class is accessible and is in app directory i.e it's not highlighted in red color but gives a normal look.
I have seen a problem like this where the solution was to change the "Module" to a specific value, close the storyboard, reopen it and delete the "Module" setting (assuming it was originally blank or restore it to its original value). This happened in project with many targets and their names may have changed.

Xcode shows two windows side by side

Hello My xcode is showing the screen in half and also not showing storyboard interface builder. below is the screenshot
I have tried to reset the xcode settings as well
defaults delete com.apple.dt.Xcode
But it didn't work. Please tell me how can I fix this
These three buttons up here switch your view. Select the left one.
You're actually stuck in the version editor (which looks at your version repository compared with your current code.)
Because storyboard UI can't be viewed with the interface, it shows the underlying xml.
Also the keyboard shortcut is command + enter (credit to farzadshbfn)
Try click on "Show Standard Editor" button:
Main Storyboard > Right click > Open As > interface Builder - Storyboard
Click First button to show your view controller.

how does LaunchScreen.storyboard redirect to Main.storyboard

I'm newbie of iOS developer, and I know that is very simple question but I really can't understand reason.
when I build SingleViewApplication, Xcode auto generate LaunchScreen.storyboard and Main.storyboard,
but I can't find any code like [self.navigationController pushViewController:] which may choose that what view controller enter stack as last one of top-level view,
I only find ViewController.{h,m} as first and see no logic that change view from LaunchScreen.storyboard to Main.storyboard.
could anyone help? thanks..
Main.storyboard file and LaunchScreen is define in your project property.
you can find it by click on project in xcode and then in below target you can find this two name you can choose your own by selecting dropdown given beside label.
and other redirecting to LaunchScreen to Main.storyboard you can refer info.plist file in your project and also AppDelegate.h and AppDelegate.m
Most probably the iOS first looks for LaunchScreen.storyboard file and shows it for some time and when it is done with it, it looks for Main.storyboard.
These names are hardwired in the plist as mentioned by Tejas in his answer and you can change these.
I don't think the the LaunchScreen.storyboard is pushing the Main.storyboard. Everything is managed behind the scenes and you can't change this behavior.
What you can change is the initial View Controller in your Main.storyboard so that it is instantiated immediately after the LaunchScreen.storyboard disappears and the app is fully loaded.

iOS 8: Launch Screen StoryBoard appears black [single XIB file works fine]

So I tried creating a launch storyboard for my iOS 8 app using this tutorial
However, I only get a black screen when I launch my app. A single launch screen.xib file works perfectly, however, when I try to use a storyboard, it doesn't work.
I tried a storyboard with just a single view controller, but it still gives me a black screen, hence I believe the issue is with storyboard files in my setup. Any ideas?
[XCode version 6.4]
EDIT: So I just want to clarify that it is the launch screen that appears black. The main storyboard itself appears correctly when the app has finished loading
Read through the tutorial and tested it, and it doesn't say two things:
1: You'll need to add a UIViewController to your .storyboard file, and then select it as the Initial Controller.
2: If you wish to change more than just the launch screen, you'll have to go to the project settings and set the "Main Interface" to your corresponding .storyboard.
Once that is done, all you need to do is edit the UIButton/Label/etc connections to your ViewController classes.
EDIT:
For clarification, you can set a UIView as the initial controller by selecting it in it's respective storyboard file, then opening the Attributes Inspector. The option for 'Is Initial Controller" is towards the middle.
For people using UIImageView in the launch screen
Make sure that you are using the image name without the extension in the attributes inspector.
So for example, if your image file is named launcher.png, only use launcher as image name.
This will show the image as invalid (?) in the editor but will show correctly when run on device.
(Don't ask me why it works this way. Ask Apple.)
None of the answers have all the steps required, hence this exhaustive solution.
Storyboard
Start by creating the LaunchScreen.storyboard. Xcode > File > New > File... > Storyboard > LaunchScreen.storyboard and add it to all appropriate targets.
In this storyboard, create a single view controller of type UIViewController. Do all the magic your launch screen requires, then follow these steps:
LaunchScreen.storyboard > Show the File inspector > Use as Launch Screen
LaunchScreen.storyboard > View Controller > Show the Attributes inspector > Is Initial View Controller
Project > General > Deployment Info > Main Interface > LaunchScreen
Repeat for [iPhone] and [iPad]
Project > General > App Icons and Launch Images > Launch Screen File > LaunchScreen
If setup properly, your Info.plist should have LaunchScreen .storyboard, without the .storyboard under the UILaunchStoryboardName & UIMainStoryboardFile properties:
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
<string>LaunchScreen</string>
Notes:
This is not incompatible with having legacy images for older devices using Launch Screen File > Assets.
Pay special attention to LaunchScreen.storyboard and Main.storyboard. One is used for launch, the other for your app entry point. They both need to have Is Initial View Controller set.
In the storyboard, which you are using for launching, please make sure that you had selected the option of Is initial view controller for the very single view controller present in it.
I Belive I may have had a similar issue that required something a littel different to the above answers.
I created a new launch screen in a .storyboard file, then after it not appearing I resulted to a new .xib file which still did not appear when the app was launched.
I figured out that some of the images I had on my launch screen had an Outlet Collection to an old .swift file. After removing this from the LaunchScree.xib's the launch screen worked fine.
Notice the litte warning sign in the outlet reference ->
Make sure that you set your entry point and in your general info tap make sure that you have the view set to resize from nib. Also make sure that in your general tab the start up point is set. In the deployment info.
Hope this helps
Spent way too long on this, thanks Apple! I finally discovered that I had to delete the actual UIImageView in my view controller - not just the image - in order to change to a different image. Tried renaming the images, replacing them in all different ways, deleting caches, deleting the app from the device, doing a Clean before building. The original image was gone from everywhere as far as I could see but it would still appear. Finally I added a new UIImageView on top in the view controller and this took a new image. Then I just deleted the old UIImageView and all was fine.
The solution is use the image name without the extension png.
For example, if your image file is named "img.png", only use "img".
This will show the image as invalid (?) in the editor but will show correctly on running.
This happen because the LaunchScreen.storyboard accept only images inside Assets.xcassets and the way to refer the images inside Assets.xcassets is the name of the resource without extension.
I think that use the name without extension is a workaround that work.
I had the black screen instead of my splash after localizing my app. In Localization section of the File inspector of LaunchScreen.storyboard I had only one tick for one localization. So, I added a tick for the second localization and this fixed the issue.
Answers by #SwiftArchitect and others are good, but I kept getting the black launch screen instead of my launch storyboard.
The problem ended up being that my storyboard was losing its connection to my target.
When I created it, I moved it into a different group/directory in the Project navigator, to keep things neat. BIG MISTAKE! That disconnected it from the target... it didn't matter that the group/directory it was now inside of was connected to the target!
You can tell the difference in the dropdown menu located at:
Project > General > App Icons and Launch Images > Launch Screen File
When you open that menu, you should see your storyboard as a choice to click on.
Do not type in your storyboard name manually -- that's a sign that the target membership isn't right.
I am also trying to add a launch screen, and this procedure got it to appear (thank you!), but now the app hangs there, not moving on to Main.storyboard and viewDidLoad. I have this:
Launch screen interface file base name LaunchScreen
Main storyboard file base name LaunchScreen
If I change the second LaunchScreen to Main, I do indeed get to viewDidLoad and the app's main screen, but without LaunchScreen.
Both sim and device do this. What am I missing to get to Main after LaunchScreen?

XCode doesn't show all subclasses in drop-down when creating a new file

I'm building an iOS application with Xcode 6 and I want to add a UINavigationController file into my project.
When I click 'New File' and select 'Cocoa Touch Class', it doesn't show all the subclasses it should in the specific project I'm working on. It used to be pretty long scroll-down, but now I see only eight options not containing UINavigationController.
What should I do to fix this problem?
remove the string from "Class". Now hit tab to enter subclass of , start typing your Super class name, It will update the dropdown, just like the search in iPhone. :)

Resources