Split View inside of a Tab Bar in an iPad Application - ios

When the iPad first came out, I recall that Apple frowned upon the use of a Split View inside of Tab Bar Item View. Whether or not they rejected applications that used this design I don't recall or know anything of.
Is this design still frowned upon by Apple? If you create an application that uses this design will it be rejected by Apple? I know there are third-party API's now that help you write applications that utilize this design pattern which leads me to believe that Apple no longer cares, but I just wanted to be sure about this.
If anyone can shed some light on why Apple frowned upon this design that would be helpful because I don't understand what about this design was an issue for Apple.

I can't find the citation at the moment, but there used to be a section in the HIG that said that you must not do this, and then they changed it to one saying you should try to avoid doing this. So I think you're clear, as long as the design makes sense. Sadly I can't find where that phrase occurred — maybe it was taken out all together.
At any rate, there's nothing in the HIG under either tab bar or split view that says you can't do what you want.

I just stepped over this, too.
This also didn't work in the Interface-Builder prior to 5.1.
But i just tried today and recognized that you can simply add a relationship from a tabbar controller to a splitview inside interface builder (this did not work before).
However, only the detail view shows up when running the app and select the tab containing the splitview.
edit: This seems to work out very easy if you compile for 5.1. There seems to be a change in handling Splitviews.
Just try it out:
In your Storyboard, create a Tabbar Controller
add a Split View Controller
Create a Reference from the Tabbar Controller to the Split View Controller
Now you need to create your Master and Detail Controllers
I am not finished with the implementation yet, but hope this helps.

Related

How are apps with typical menu-bar-style navigation coded?

I’m a relatively new app developer working on a couple of individual projects. I’ve dumped at least one hundred hours into coding using Swift in Xcode, and, as embarrassing as it may be to admit, it seems I can’t fully grasp or find information pertaining to how popular apps such as Facebook, Instagram, YouTube, or Tinder implement non-linear view navigation via a menu bar at the bottom of the screen.
I’ve seen one particular app tutorial series that exemplifies how to go about making this menu bar style possible using a collection view of horizontally-placed views each equivalent to the size of the screen. I understand this gets rid of the issue of loading new views on top of existing old ones that sit in the background (my primary worry, outside of unnecessarily reloading information), but is this the typical method of implementing non-linear menu navigation in an app? I suppose a more pressing question at this point is “How can I go about making something like this using SwiftUI?”
If anyone can offer information, explanations, and/or sources, they would all be much appreciated. Thank you for your time!
So, upon receiving TylerTheCompiler’s comment on my post, I started researching the UITabView. It appears that this is used for creating exactly what I was trying to explain in the initial post. I subsequently searched for a way to implement this in SwiftUI and found the “tabbed view.” The tabbed view seems very easy to implement and is exactly what I’ve been looking for. I still wonder if popular applications have been utilizing the UITabBar rather than something else more practical that I am still unaware of. If you happen to know, please comment on this post — I would love to know, myself. As always, thank you for your time, everyone!

UIPageViewController turn-to-page example

There are a couple of explanations on how UIPageViewControllers work, and I have read them. I have built an app based on the approach in Neil Smyth's excellent 'iPhone iOS 6 Development Essentials" in chapter 28. It is elegant and simple.
It seems a relatively simple thing to add a method to this class, and a button to the main app view, to cause the UIPageViewController to turn to a specific page. But I cannot quite see the beset way to do this.
If someone could point me to the solution -- or tell me how to add a method that would I think use the provided "viewControllerAtIndex:" method cause the page turn i want.
Seeing this done (exactly what code codes where) in that app would help me understand and point the way to a solution in my own app.
thanks everyone sorry i know this should be obvious from the ansers to the likes of this question link but i am not quite getting it.
As noted in my comment I can close this question as I've found a good solution. As I wanted both "skip ahead" and "skip back" as well as "jump to page", I used a solution that involved specifying the top level View Controller as a delegate to content view controller, keeping track of the current page, and then passing the clicks on contentViewController back up to the implementation of the top level controller (as delegate) to move to the new page(s).
I have posted the source code for this solution as part of the "A-B-C Picture Book" source code. This app is in the app store; see https://itunes.apple.com/us/app/a-b-c-picture-book/id578864421?ls=1&mt=8.

What is the correct pattern for creating a header navigation across the app?

I have been googling around, and I found some suggestions to use UINavigationController and sometimes the UITabBarController also makes sense (but to a lesser degree).
I never used a UINavigationController ...I just tried to and when I dragged it to the storyboard, it put two screens on the storyboard (a navigation controller connecting to a UITableView). So I think this isn't what I actually needed.
Can someone please help me understand what I need to do to make a header navigation that is persistent across all the screens? In it I want to have sections like:
Home | Section1 | Section2 | Section3
Thanks!
It may help to consider what the user will see as the "meaning" of the structure you use.
The sense of a navigation controller is as a container that lets you show a sequence of content controllers where actions on one of them lead logically to the next. The sense of a tab bar controller is of (mostly) unrelated content controllers that co-exist and don't have (much) dependence on each other.
I think it's good to start with the purpose of the interface rather than the appearance.
I'm gonna suggest to you something that helped me a lot, which is to go download Stanford's iPhone and iPad Development course CS193P from iTunes U (you go in iTunes Store, search for it and download it).
Secondly, you shouldn't ask such general questions on SO, the question you asked is something you can find out on your own by researching, reading Apple's developer documentation, or doing a tutorial as I just suggested. Best of luck.

iOS:Switching between views using UINavigationBarController

First of all, I am using XCode 4.2 and I am not using storyboards. I need to make an application with 2 views.
First view will contain a button and a navigation bar, the button's IBAction should only go to the second view, and from the secondview you should be able to go back to the first view via the Navigationbar.
My problem is the navigation controller / navigation bar, how do I set that up ?
I know that it would be smart using the singleView app and then add a navigation controller, the problem is that I dont know how to set it up in the code.
I have searched for similar problems on the internet, and I keep getting into posts where they use another SDK or using an older xcode etc.
What I do know is how to make the button, actions and delegation.
Anyone out there who is sitting with the one and only tutorial I am missing or can tell me how to do it ?
Thank you
Use the Master-Detail Application template. Ignore the stuff for tables, it has navigation stack implemented in it. By deleting the tables, you should be pretty much left with what you are after.
You should go to http://developer.apple.com/, search for UINavigationController, click on UINavigationController Class Reference, then look at one of the linked sample code projects there.
if you really want to learn how to implement it from scratch (and not depend on the master-detail template), i highly recommend the following resources:
the apple documentation on UINavigationController
the solutions from the big nerd ranch iOS Programming guide (particularly the Homepwner example)
also found this tutorial in a quick google search, but haven't fully vetted it in xcode 4.2 (there will likely be small differences in how you have to go through the steps).

Converting from a Window based application to a view based application in Ipad

I would like to know if it is possible for me to convert from a window based application to a view based appln... The reason is because I had already developed a part of my app but am getting some orientation issues which I was told would be solved only by using a view based application.
I was unable to find online any documentation regarding this..
It would be be great if anyone could help me out in this...
"Window based application" and "view based application" are just two of the templates you can use to start a project, anything you can actually do with one you can do with the other.
In the version of XCode I have handy here, the only difference between the two is that "view based" gives you an empty view controller and hooks it up to be displayed on app startup.
add a view controller subclass to your project, and then create an instance and add its view as the subview of your UIWindow in application:didFinishLaunchingWithOptions:, you've basically done it- anomie
it's the best and easiest thing you can do as of now

Resources