XCode does not recognize iPad storyboard - ios

I have two storyboards Main and Main_iPad. My problem is that, in both of iphone and ipad devices, only Main storyboard gets selected and executed. What I did is:
iPad storyboard selection
iphone storyboard selection
I dont know its usage
So, whenever I change Universal from Main to Main_iPAd my it is working on iPad but crashes on iphone. But when I change it to Main, then it works both on iPad and iphone but, does not recognize the model inside Main_iPad. What can be problem?

I've had this same problem. My conclusion is that you can't configure this correctly by editing the target (as you are doing). You have to go directly into the Info.plist file and set it up there, by editing the "Main storyboard file base name" and "Main storyboard file base name (iPad)" entries.

Related

iOS - Open a different Stroryboard based on the device size

I have created an app in Swift and I want it to be available in both iPhone and iPad, but I would like the iPad to have a couple different layout variables, such as bigger buttons and pictures. Using auto-layout or Size Classes with constraints wasn't working and not letting me put them where I want them, so I was wondering how to make it so that when I open the simulator with an iPad, it opens the storyboard with the different View Controller layouts. I made a duplicate storyboard so I have main.storyboard and the copy is mainiPad.storyboard for the iPad only. If this can be done, please let me know! Thanks!!
This Tutorial is the old way, when You simply add iPad suffix in the file name.
This Post is the new way, introduced in Xcode 6; You simply select the storyboard name for ipad and iphone family in application plist file.

iPad storyboard changes not happening?

I started a xcode project for iPhone and now I'm working it also for iPad (Universal App).
So in devices I put Universal and I create the iPad storyboard and make the necessary changes (in plist file and build settings) and now anything I edit in the ipad storyboard is done, obviously yes on code but not in the storyboard (I'm working without auto-layout so Its disabled in both storyboards).
What can I do? I've checked everything and it's in order.
Just a guess, but you might be getting an error showing up in your debug console. Make sure that the storyboard has an entry point. Select the viewContoller that is the entry point and check the checkbox for "is initial view controller" in the utilities pane.
did you check the target> General> their did you give the storyboard for ipad? if you look, you can see the selection on iphone and your iphone storyboards name below it. Change it to ipad and enter the storyboard?

How to create iPad xib file in iPhone specific project

I did a project few days back for iPhone but now i want to add iPad xib file into it. As features are enhancing. But the problem is that, at starting i selected an iPhone target for xib file not universal project.
So now i want to add xib for iPad's .
I created a new xib file for iPad but don't know how to load this on iPad instead of default xib file which is created for iPhone.
I have been checking a lot of other questions but didn't find any correct answer.Xcode 4 .xib Create iPad Version But its not working for me
I'm working on Xcode 5 and iOS 7.0.x
For automatic loading xib for iPad add ~ipad to the name of xib file.
For example:
If name of xib for iPhone version is CustomVC.xib
then for iPad version use CustomVC~ipad.xib.
When you create object of vc CustomVC *vc = [[CustomVC alloc] init]; iOS will automatically choose correct xib file depending on platform (iPhone or iPad) where application is run.
On the general tab for the target settings you'll find "Deployment Info"
Change "Devices" to "Universal" (You've probably already done this) The first time you do this it should ask you if you want to copy the iPhone storyboard to create an iPad storyboard. Choose the correct answer.
Select iPad from the tabs below devices.
Change "Main Interface" to your new storyboard.

Xcode storyboard: Why does the iPad storyboard show iPhone sized views?

I have a universal app that uses storyboards. There is an iPhone storyboard and an iPad storyboard. However, in interface builder, the viewcontrollers for the iPad storyboard are still sized for the iPhone. How do I get the iPad storyboard to show iPad sized view controllers?
I realize that the view controller display in interface builder is design-time-only eye-candy, but having iPhone sized VCs makes it really hard to lay out the UI correctly.
After some digging through the storyboard source code, it turns out that the iPad storyboard was copied from the iPhone storyboard. So, the question really became how do I convert an iPhone storyboard into an iPad storyboard?
The answer is surprisingly simple. I ran across this SO answer -- to convert an iPhone storyboard to an iPad storyboard, do the following:
From Xcode, right-click on the storyboard and choose Open As ->
Source code
Search for targetRuntime="iOS.CocoaTouch"and change it to targetRuntime="iOS.CocoaTouch.iPad"
Right-click on the storyboard again and choose Open As -> iOS Storyboard
The storyboard will now show all views in the correct size.
When you first create a storyboard you select a Device Family (iPhone or iPad) that the storyboard is targeted for. I don't know of a way to change the device family once the storyboard has already been created.
However, to solve your problem I recommend the following:
Create a new storyboard by going to: New -> File -> User Interface -> Storyboard (Be sure to select Device Family = iPad when choosing the options.)
Go to your old storyboard, select and copy everything by pressing Command-A, Command-C. Then go to your and paste everything by pressing Command-V. Your view controllers will now be iPad-sized.
You can then delete the old storyboard and rename your new storyboard to whatever the old name was.
This answer is not a solution, but will help to get one of the reasons why such things happen.
The issue occurs when you try to disable:
"Use Auto Layout"
When you uncheck it, the popup window appears. There is select:
"Keep size class data for: iPhone", by default is selected iPhone (no matter which iPad or iPhone project you created).
If you will not mention on it, your storyboard will be auto converted to iPhone sizes.
Do not forget to choose right device.
I used the suggested answer to convert an iPhone storyboard to an iPad storyboard and it worked great for most of my views. However, I realized that one of the views was still iPhone storyboard sized. The reason was because I had locked All Properties of one background image (because I did not want to accidentally move it). Removing the lock turned the view back into iPad sized. This might help someone stuck on this.
Make sure you set the right Storyboard in Target > General. This kinda stuff makes me headache for 3 hours before i realise i set the same storyboard for iPhone as my iPad storyboard.
In my universal app, I was using SpriteKit for the main viewcontroller. The SKScene.scaleMode was set to aspectFill. When run in the iPad simulator, the app started up iPhone mode. Solution was to set scaleMode = .resizeFill.
For me i have found it more easy by changing the view controller presentation to Full Screen rather than Automatic, I use Xcode 12.1

iphone to ipad conversion: some storyboard options missing

I'm converting an iphone app to an ipad app. I've changed the project's build target from "iphone" to "ipad" and the app compiles, builds, runs and displays the way I want it to.
However, I've noticed that some parts of Storyboard still believe this is an iphone app. For example, when I try to build a segue, it only offers me the "push" "modal" and "custom" options. A newly created ipad project also offers the "popover" and "replace" options.
Similarly, this converted app does not offer me the possibility of a Split View Controller.
So is there a setting or some way to get this "iphone" -> "ipad" app to have the full ipad storyboard options without restarting the project and copying everything over?
I had a similar problem to this awhile back. I fixed it by clicking on my main project on the navigation panel. If you go to summary and look under the iOS Application Development you will see a spot that asks which devices your app is targeted to. Make sure this is switched to universal
Next create an iPad storyboard under File > new > File... > User Interface > Storyboard > set Device Family to iPad (It sounds like you already did this though). Make sure you call it something different then your iPhone storyboard.
Lastly go back to your project settings and scroll down to the iPad Development Info you will see a drop down titled Main Storyboard. Make sure that is set to your newly created iPad storyboard.
If this still is not working for you the Standford ItunesU iOS course has a lecture on converting iPhone applications to universal ones.

Resources