One Xcode iOS Template inside another - ios

Does choosing any template while creating Xcode (Single View Application, Master Detail Application, Page Based Application, Tabbed Application) project means I can not change the application UI later?
Can I have Master Detail View + Page Based view inside a Single view Application?
Im new to iOS So please bear with me. Thanks.

You can make whatever changes you want. The original template you choose simply gives you an initial app with a storyboard setup with the minimum needed. The single view just gives you a single view controller. The master detail gives you a split view controller setup with a master view controller and a table view in a navigation controller for the detail view controller.
With that starting point you can add, edit, or completely replace that setup to meet your needs.

Related

Can I change the template after creation of project in xcode?

I am creating an iOS article reading application which contain multiple headings,images and multiline text using platform Xcode(5.1) and chose template Empty application.
I'm in the middle of project to complete.
Now , Is it possible to change Empty application to Master Detail application.
I'm in the middle of project to complete. Now , Is it possible to
change Empty application to Master Detail application
You can achieve the Master Detail application template dynamically/while running your app using UISplitViewController.
The UISplitViewController class is a container view controller that manages the presentation of two side-by-side view controllers. You use this class to implement a master-detail interface, in which the left-side view controller presents a list of items and the right-side presents details of the selected item. Split view controllers are for use exclusively on iPad devices. Attempting to create one on other devices results in an exception.
By default, the split view controller displays both of its view controllers when in a landscape orientation. However, in a portrait orientation, the split view controller displays only the detail view controller by default.
No, you cannot change the template after creation of project in xcode. The only thing you have to change before the creation of project.
The template does not restrict what can and can't be done in your app. It just sets out a boilerplate set up of your initial app.
"Changing the template" makes no sense.
The master detail template just uses a uinavigationcontroller as the main navigation. You can just add this to your storyboard.

Creating a spit view app from single view ios

I have run into a snag with changing a single view style app into a split view style app.
I have made it so I have the detail view set to the correct view controller, but dont know how to set up a table view for the master view. I created the table view as its own file outside of the storyboard and I don't know how to add it to the master view.
Also how should I link the two together in my code? The Table View was displayed as a popover in the single view version of the app, and it calls a method from the View Controller when a cell is selected. How would I implement the code to bind them?
Sorry if this seems noobish, but this is my first app and still learning.

A Tabbed application with a different Master Detail Table View on each tab, using Core Data

I was hoping someone could help a noobie out.
I am trying to create an iPhone/iPad app that uses tabs as its main navigation. The first tab will be kind of a home screen with basic info and a feedback button etc. The other tabs (3-4 tabs) each need to display a different "section" of the app. Each section will display a table view and navigation controller (using Core Data). These table views are unrelated to each other, each using different tables from the database (sqlite).
To illustrate this lets say tab 1 is the apps Home, tab 2 lists your grocery list, tab 3 lists recipes and tab 4 lists coupons available. They all fit together in the app but they come from completely different tables. Each navigation controller that appears on each tab is Completely different. Im using it like secondary navigation within the tab.
So my question is, does anyone have any tutorials that illustrates this technique? And if not do I have to create a different fetchedResultsController for each tab? I started the project using the Tabbed application template, I then created another dummy project using the master detail template and added the master detail code and xibs to my tabbed project. So I now have tabs that display the generic time stamp entity that comes with the master detail template however I cannot seem to get the tabs to display different data.
Also how can I create a navigation controller for each table view / tab? All of the documentation says to initialize it inside of the AppDelegate however if I put it there how can I get a different controller for each tab? Do I declare 3-4 controllers in the app delegate and some how assign them to each table view? I have not seen an example of this anywhere even though it makes sense. Tutorials would be much appreciated.
Thank you so much in advance. Im just stuck here. :(
So to start off each tab (I assume you're talking about a UITabBarController) will have it's own UINavigationController->UIViewController. I don't know of any tutorials about using the master-detail inside a tab and I haven't done it personally, but for your second question about navigation controllers inside your tab you would do the following:
Start off using a tab template using storyboard.
Inside your storyboard you can see that they have the two view controllers and they are tied in and stuff. I would just delete them as they aren't needed.
From the right side you'll drag in however many UINavigation controllers (the gold ones) you need. When you drag it in it should bring in two views, the controller and the root view.
From the tab bar controller control+drag to the navigation controller and connect it to Relation-view controllers. Do this for all the navigation controllers
Your storyboard should look somewhat like this:
You now have all view structure set up. So you'll now need to create all the classes for those. As you mentioned you'll create a recipe view controller, shopping list view controller...
Set the blank views to use the classes you just created created. From each of these classes you can push views to their navigation controller and it will push it onto that stack and if you switch tabs you'll start where that one left off.
Inside of each of these Classes there will need to be a NSfetchedResultsController that will tie into acore data database (Housed in the delegate or another class) and control that table.
Here is a great tutorial I've used for setting up my first nsfetchedresultscontroller. It goes through the entire process from start to finish.
http://www.raywenderlich.com/999/core-data-tutorial-how-to-use-nsfetchedresultscontroller
I hope that gets you off your stuck phase. let me know if there is anything unclear on the set up.

Call a Split View from another view

I am a beginner in iOS programming..
I have created two iPad based projects, where one is a view based application and other one is a split view based application.
Now, I want to integrate the splitview application in to my first project.
I have read in Apple's documentation that a split view needs to be in root view.
How can integrate the split view such that my home screen (from my first project) is shown first, and then on tapping a button, opens the split view..?
Thanks for helping me here..
One way to do this is to use UITabBarController...
As per apple documentation, if you want to use split view it must be a SplitView based application. And Split view must be the root view controller.
A split view controller must always be the root of any interface you create. In other words, you must always install the view from a UISplitViewController object as the root view of your application’s window. The panes of your split-view interface may then contain navigation controllers, tab bar controllers, or any other type of view controller you need to implement your interface.
http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/iPadControllers/iPadControllers.html
You have read it so you know you can't do it using Apple's UISplitViewController. I suggest you check out MGSplitViewController or APSplitViewController. It provides additional customization as well.

What is the Difference between Window Based Application and View Based Application?

I'm working on a new application that will hold a "main view" leading to another view when clicking on buttons in the main view.
I'm not sure which template to choose as a starting point: Window Based Application or View Based Application.
Can someone explain the differences between them?
What should I take into consideration when selecting between the two?
In your case, I would use the View Based Application. The difference between window and view is that the window template does not create a view controller class and related user interface file (.xib). It just gives you a blank window. In iOS there can only be 1 window, but multiple views can be presented on that window.
The View based template does everything that the window based template does PLUS it creates a view controller class and that class's xib file. In addition, it adds that first view controller to your window. In iOS, when you want to show another view, you'll almost certainly want another view controller class. View controller classes can add additional views on top of themselves with ease.
Since the Window template gives you 0 to start with and the View template gives you 1 to start with and you'll eventually need 2 for your two views, it'll be less work for you to start with the View template.

Resources