xCode Navigation Controller - How to assign another view as the root view - xcode

I want to implement a navigation bar. When I add the nav bar controller it adds a table view. But I don't want a table view! Is there a way to reset that relationship to a different view type?

May be adding it as a subview could be a solution?

Related

Table view cell segue to view controller not working (Swift)

I have a table view cell, which I am trying to connect to a view controller (table view is menu, titled equations) (view controller also has navigation controller and navigation bar, titled quadratics), however, when I control-click the table view cell and drag to the view controller and select "show", it works in the build, but it does not show a back button in the view controller, would there be any way to fix this (preferably with a story board and not programmatically).
Also, how would I make the animation from table view to view controller a right to left slide, and vice versa?
You do not need to have the second navigation controller in between your 2nd and 3rd view controller. Delete the navigation controller between your menu (table view controller) and equations view. And create a segue between them directly. This will add the equations view to the navigation stack and you will get the desired animation and back button automatically.

iOS8 UISplitViewController: How to switch to master view in compact width window?

My root view controller is an UISplitViewController, which has a UITableViewController as master view controller. On iPhone (compact width), it looks like a UINavigationController.
Tap a cell to show detail view controller
Tapping the trash button would delete the current note. My problem is how to go back to the master view after that? Since it's an UISplitViewController, it can't pop the current view controller as UINavigationController does.
I had a similar problem and finally found a solution. As I understand it, when in compact width, the detail navigation controller becomes a view controller of the master navigation controller. So all you have to do is:
Determine if only one view is present by checking the split view controller's collapsed property. If it isn't collapsed (e.g. on iPad), you're already showing the table view in addition to the detail view.
If it is collapsed (e.g. on iPhone) get a reference to the master navigation controller via the detail navigation controller and have it pop to its root view controller which, in this case the your table view controller.
This is the code I use in my detail view controller. In your case I think you just need to add this code to the button action in your detail view controller:
if splitViewController!.collapsed {
let detailNavController = parentViewController as UINavigationController!
let masterNavController = detailNavController.parentViewController as UINavigationController!
masterNavController.popToRootViewControllerAnimated(true)
}
Good luck!

Navigation Bar disappearing while scrolling

I am using table view in my app. I manually created the table view with basic cells. I inserted a navigation bar on the top of the screen. When I scroll down, the navigation bar disappears. To make it reappear, I have to scroll back to the top of the screen. How do I ensure that the navigation abr is constantly there on the screen, while I am scrolling down.
There are a few different ways.
First way is to embed your view controller in Navigation controller instead of adding navigation bar directly to your view controller. Select your view controller and select Editor->Embed in->Navigation controller. It will add a navigation controller to the storyboard and will set up your view controller as its root controller.
This will work even if you use Tableview Controller (which won't let you add navigation bar manually in interface builder).
I would recommend you to use this way.
See screenshot http://imgur.com/WQhgktf
Second way is to add navigation bar directly to the controller and to check the hierarchy of the views: both table view and navigation bar should be on the same level and navigation bar should follow table view. Most likely your navigation bar was added as a subview of the table view.
Note that I would not recommend you to follow this way, because you will have to manually add constraints, this method won't work with table view controller, plus you can run in some other problems.
See screenshot http://imgur.com/UYeq8vF

xcode title bar / collection view

probably an easy solution to this, but not sure how.
I'm using colelction view with a tab bar. I'm unable to drag a navigation bar on to the view from the objects pannel, and selecting the navigation bar from the properties pannel works, but doesn't display in simulator mode.
Any thoughts?
Many thanks, again.
Well, one way to achieve what you're looking for would be to embed the view controller or collection view controller that contains your collection within a navigation controller (Editor->Embed In>Navigation Controller).
Then instead of linking your controller with your collection directly to your tab bar, you would link the navigation controller that contains it.

Storyboards: A loop of Modal Segues?

I want to implement something using Storyboards, but I don't know the best way to accomplish it.
I don't want to use a Navigation Controller, since I don't want the navigation bar at the top.
I just want the ability to switch from one view controller to the next.
I have a Main Menu view controller, which will segue into other views, and those views might segue to other views... Now, lets say that the last view in the chain has a "Return To Menu" button: should I just segue from that button to the Menu view controller? Or should I somehow dismiss all of the previous view controllers?
I don't need iOS to hold a copy of the Main Menu view controller after the user taps out of it, but I can't seem to find a way to just load a new view controller and present it, instead of having a parent view display it "modally".
Would it cause a memory leak if I just create a loop of modal segues?
(for example: Main Menu --> VC1 --> VC2 --> Main Menu --> VC3 --> VC4 --> Main Menu...)
Any help will be much appreciated.
Thanks!
Each segue creates a new instance of the destination view controller, so having a segue back to the main menu is not a good idea.
You would be better off dismissing the presented view controller(s), but note that it is possible to use a navigation controller without showing the navigation bar - the navigation controller has a property, navigationBarHidden, which you can set to hide this.

Resources