I'd like to create a menu sliding from the top with a list of options.
More specifically, when the user clicks the navigation bar, I would like that a kind of modal view will slide from the status bar to the bottom. The modal will be a tableview.
I'd like something similar to the app Foursquare where (in the explore tab)
if you click the navigation bar a menu, sliding from above, will appear like this:
How can I build such a modal/menu?
Check out DDSlidingPanels on github. There is an example project to help you get started. Is iOS 6+ because it uses nested view controllers and autolayout.
DDSlidingPanels
I like it because:
It is customizable (pull-out tab, position left, right, top, bottom, size of pull-out, supports dragging gestures for pulling down, pushing back, etc.).
It is easy to implement in your own project (the example project is helpful).
I have used it in one of my projects successfully and customized it quite a bit. I don't have any affiliation with the author.
Related
I'm developing a flutter application and I'm now struggling to understand what is the best way to implement a complex bottom bar navigation.
Here are my requirements:
each button on the nav bar should lead to a different section
each section should be able to have multiple screens inside of it
user can navigate from any page of a section to any page in another section and back
each section should show the last visited page if we come back to it
for example, let's say we have two sections, each made of two pages: SectionOneA, SectionOneB, SectionTwoA, SectionTwoB.
A few use cases:
user navigates from SectionOneB to SectionTwoB by pressing a button inside SectionOneB, when user presses back (on android) from SectionTwoB, we should navigate back to SectionOneB
user navigates to SectionTwoA by the nav bar, then navigates to SectionTwoB via a button in SectionTwoA, then navigates to SectionOneA via the nav bar and then press the SectionTwo icon in the nav bar again. we should show SectionTwoB. if back is pressed we should navigate to SectionTwoA.
in both these examples, when moving from one section to another, the correct nav bar item should be highlighted.
I'm new to flutter so I'm learning as I go. For now, what I've done is using nav bar with PageViewer to switch from section to section, then each section uses a PageViewer to handle switching from page to page. This worked well until I had to implement the first usecase above, at this point it seems to me that it would be quite challenging to implment a proper navigation stack as demanded by the usecase and I feel it would be better to rethink the whole thing, only I've no idea what is the best way to approach this.
A temporary solution would be to also include SectionTwoB in the PageViewer of section one, but that would not allow me to highlight the proper nav bar item.
Any lead on how to approach this? All the examples I find seems too simple and/or I'm failing at understanding how to connect the pieces together. I'm using flutter_bloc as a state management library.
The menu slider that the menu is popping out from the left side of the screen is awesome.
"I was just trying to see how it can be emulated in my application.
Any one has a clue how it can be achieved?"
I want it to look exactly like on the picture, with menu items on the left.
There is a similar Android Question
You can use TabbedPane for that purpose, having left menu populated with set of Actions. However, usage of TabbedPane means you have to use Tabs.
In your case, you'll most likely have to use Actions menu which pops out from the right side as this complies with Blackberry Design Guidelines and fits your goals as I can see it from the screenshot provided better.
I've been asked to create an iphone app with a left nav/menu. Since there are no native UI components to use for this, I was wondering what would be the best way to achieve this. The only app that I remember that had this kind of thing was the Facebook app from about 18months ago.
Is there a good 3rd party API to handle this kind of thing?
Description of the left nav: There is a permanent left nav along the left of the screen running the full length of the screen. When the user selects a menu option a UIView/UIViewController slide in from the right side and covers over the menu. A little button is left stuck to the left side of the screen. If the user selects this button the view slides back to the right again, and the leftnav menu appears from underneath the view and it is possible to interact with again.
Where is the problem? just create a UIView with subview containing UIButtons, you have to layout the buttons yourself (calculate the frame). Later you add that leftmenuView to the UiViewCobtroller.
My UITabBarController contains more than 16 view controllers. When I go in the "More" tab, I can see all the UITabBarItems. If I click the "Edit" button, I can see the 16 first icons, but there is not enough room to display more, so starting from the 17th item, the icons are only partially displayed. Starting from the 21st item, the icons are not displayed at all. And it is not possible to access the rest of the icons with a scroll bar.
By the way, this question gives a theoretical answer to my question, but does not address this practical corner case.
You need consider other modes of displaying view controllers if you have more than 5. For example the facebook app shows a revealing sidebar, maybe you need to figure out a way of displaying stuff in a similar manner.
How would one implement a wizard style interface for the iPhone?
For instance I have a form that I would like to break down into 5
different pages or views instead of putting all the information to fill out
into one page or view.
This interface must have the ability to go prev or next in case they want
to change something on page 2 when they are on page 4.
This interface must have the ability to go to page 3 directly and still be
able to go prev and next. Seems like using UINavigationController wouldn't
work here since views 1 and 2 are not on the stack so prev would not work.
Update: Check out the "gas cubby" application. It has what I'm looking for. UITableView presents the items you can fill out. Selecting a row takes you to the detail view to enter data and prev and next to fill in other information.
UINavigationController seems like the obvious solution. It gives you nice, familiar page transitions for free, and if you need to jump to a specific page you can just set up your navigation stack without using the transition animations.
I would say use a Navigation Controller. On the 1st view, show the 5 options in a Table View. The user selects a row, and then the corresponding section is pushed onto the stack as a new UIViewController. So, if they are in view #3 and want to go back to view #1 (to be honest, I would recommend rethinking whether or not somebody in the real world will actually want to do this), they hit "back" and then select view #1 from the table.
I can't think of a better way to do this because you won't have room to do something like breadcrumbing, which Apple would recommend against anyway. You could use a tab bar but that is more like options then some sort of wizard workflow.
If you really want them to be able to skip around the process, the combination of a UINavigation controller with a UISegmentedControl to jump to sections would do what you want. You can either embed the segmented control in the nav bar or place it just below the nav bar (which seems more like what you want since you have five sections).
If the Segmented control is not quite to your taste just put up any set of five buttons to change sections and make them visually appealing.
A "wizard" UI is typically used when you have a relatively small number of steps where one step depends on the previous, at least at some steps, the results or presentation depends on previous steps. This is like a navigation tree that usually results in the use of the navigation controller, but with only one potential branch at each each step. My feeling is that the navigation UI would be perfect, but with one exception; A button on the right hand side of the navigation bar that is the left to right mirror image of the "back" button that is usually found in the left part of the navigation button. That button would navigate to the the next step, and at each step the page presented would allow the user to fill in the information for that step. The only problem then is navigating to a step not the next or previous, and this could be corrected with a custom button that includes a drop-down list of the steps in the process. And this would fit nicely with the rest of the iPhone UI, which Gas Cubby's wizard UI (as good as it is) does not.