Please refer the flow below:
What I would like is for the first screen to launch a screen where View A is shown and a button that can close the screen. Clicking on "X" gets the view back to the main screen. On clicking on a button in View A, View B should be shown. But, View B should be shown within the same region as View A, so that the lower view with the "X" button is visible. View B can then probably segue to other view controllers. But anytime the "X" button is pressed, we should go back to the screen that launched view A (the main controller in this case).
I got the first three screens working. But when I segue from View A to View B, it covers the entire screen. Any ideas on how I can just replace View A with View B. When View B is shown, I also want to be able to add a Back button to go back to View A.
This is very similar to how Quora iOS app shows specific answers.
Any ideas on how to implement this?
Related
I have two view controllers, A and B, each under its view controller scene.
When I run the app on an iPhone the segue from A to B goes from full screen to full screen as expected.
When I run the app on an iPad the opening view, A, fills the entire screen but the second view, B, is presented in a square box quite smaller than the full screen size.
Use Full Screen (deprecated) is checked.
Here are the view and segue definitions:
The problem was that whereas on an iPhone a segue from VC A to VC B presented a VC which was full screen, on the iPad the VC was presented as a square that did not fill the screen.
Solution:
Clicking on the segue between A and B brings up storyboard segue in the left column. On the Kind DM select modally. This brings up a new menu. In the kind DM select Full Screen.
I'm working with the Xcode view editor and Swift.
I have my main view which contains a tab bar controller with 2 tabs.
On the second tab, I have a #IBoutlet var myLabel: UITextLabel!. Inside viewWillAppear I put some text in this label.
On the first tab, I have a button which launch a third view through a Push segue, and on this new tab, I have a Back button which gets me back to the main view containing a tab bar controller (through a push segue too).
When I launch my app, go in my second tab, the text of the UITextLabel is changed.
I still can go to my first tab and navigate between them it works.
But the problem is when I click on my first tab's button, then on Cancel, then goes back to my second tab, my UITextLabel doesn't change. And I can't perform any action on it anymore. It's not nil though but it's like it's still connected to the first UITextLabel before the segue and not this one.
Where am I wrong ?
Several things are wrong.
With tabbed apps, Apple says that the tab bar controller should be the root level navigation method for the app. It should always be present, and the user should always be able to tap another tap to switch to another part of the app.
So the first tab should connect to a navigation controller. When the user pushes the button, you should push a new view controller onto that navigation controller. The tab bar will still be visible and enabled, and the user will still be able to switch to view controller one.
Next thing:
You say "I have a Back button which gets me back to the main view containing a tab bar controller (through a push segue too)."
That's very wrong. Back buttons should pop a view off of the current navigation stack. They should not be pushing anything. Any time you use a push segue, you are creating and pushing a brand new instance of a view controller, and leaving the other view controllers in the navigation stack.
Heyo,
Right now I've got an app that presents a menu screen that partially covers the original screen, and can be used to navigate to other screens. This is done using a modal segue.
To get to another screen the from the base page the menu is presented, the user selects the next screen in the menu, the menu is dismissed, and THEN the segue to the next screen is preformed.
What I've spent a few weeks trying to figure out, however, is how to dismiss this menu DIRECTLY to a viewcontroller OTHER than the one that's presenting it.
I'm thinking I've got to figure out how to change a presenting view, but I haven't had any luck.
Currently I'm completely at a loss, and any recommendations/fixes would be great!
I'm looking to create an application with 4 screens. The first screen will have a tab bar controller with two tabs. The second tab will go to 3rd screen. The 3rd screen will be a table view and when a cell is clicked, will push to the 4th screen and then I want to have a back button on 4th screen to navigate back to 3rd screen. The first screen will have a button that segues to the second screen and from the second screen there is a button that segues to 3rd screen which is the table view. The second screen should also have a back button to go back to first screen. How can I implement this via StoryBoard?
There are a lot of tutorials in the Apple developer site... but also on youtube... search for "Storyboard ios" you can find a step by step tutorial on how to manage the tableview controller and additional tableview to show details. I suggest also to look at http://www.raywenderlich.com/
What I understand so far from your question. You should first drag a Tab bar controller, that will by default have 2 tabs. Now on 1st tab or 1st view controller, place a button and make its push relation with the view controller you want. 2nd tab will open 3rd screen. Place a table view in it(view controller with 2nd tab or item). Make push relation from table view cell to the 4th screen(drag view controller and embed this view with navigation Controller). Embed all those views with navigation controller form where you want to turn back to previous view controller. Hope this is what you wanted.
I have figured out my issue. I wasn't using push to segue with my navigation controller and that was throwing everything off. Thanks for the help!
I have two xibs, one is my title screen with buttons, the other is a more specific window that should come up when one of the buttons is pressed.
This isn't switching the whole screen, just a popup window, where clicking outside of the bounds of that window will make it disappear leaving only my title screen remaining as it was visible behind this popup view. This is similar to my understanding of "modal views".
Anyway I do not quite get how to connect it to the button on my title screen. I have the views made in IB ready to go. I'm not sure if I have declared all objects to satisfaction yet.
From what I understand I think I need a UIViewController or something, but its all a pretty thick fog of information right now
insight appreciated, or links to proper noob sources would be helpful
Does your title screen have a view controller (or is your app delegate the main controller object)? You will want to add an IBAction to that object, connect the button to it, and then present your other view controller modally (or in a popover) from there.
A popover will appear in a small window with an arrow, and tapping outside will close it. A modal view controller typically slides up into place, and you have to press a cancel button to close it. This guide explains how to use a popover. Using a modal view controller is simple if you have a view controller: [myViewController presentModalViewController:nextViewController animated:YES].