Apple Watch App - Mix approach of Page based application and Hierarchical application - ios

Is there any way to add horizontal scrolling/pages inside Hierarchical WatchKit App. OR navigate to controllers inside Page-based application. (Hybrid approach of hierarchical and page based application)
I want to show screens in horizontal paging, however use can navigate inside further screens/controllers from any page.
As we can not push any controller in page based application, nor we can show horizontal pages in hierarchical WatchKit app. Is there any way to use hybrid approach?
My target is to show horizontal paging to user at start of application and user can navigate into hierarchy of any page.
P.S: I've implemented hierarchical and page-based applications separately, looking for some hybrid solution. One option is to make page-based application, and present a hierarchical interface modally. but there is limitation that i can not navigate further. (let's assume there are 10 pages, and in each page user can navigate upto 3 levels hierarchy)
Any suggestion would be appreciated.
Thanks.

According to WWDC 2015 Session Videos, it is not good to make such a hybrid interface.
Imagine you have a hierarchical one with two buttons. Clicking on first button opens up a view containing Page-based navigation. This will work, but if you want to scroll between pages from this page to previous one, this gesture is like returning back to Hierarchical view (scrolling from left side), so we will have a disorganization here.
In other hand, if you include buttons in a Page view controller, then user will expect to return to the only first page when returning back all the way. When he returns back to the first page, again he may thinks I must return again and so there will be another disorganization here between returning back all the way and scrolling toward the page.
If you need to implement this feature in your app, you can make a Page View navigation by dragging views to each other while pressing control key, and then add buttons. Control-drag buttons to the destination view controllers, or you can implement a hierarchical one and then control-drag the destinations together.
See WWDC 2015 session videos to get more about that. They can be found in developer.apple.com/wwdc.

Related

UISplitViewController should be root, so how to "push" the real starting view on top?

My app design is very simple, at least with respect to describing the intended user-facing views:
The starting view is initially empty. Pressing a "Select" button in the navigation bar transitions to a split view. On the left (master) are the photo albums on the device. On the right (detail) are the images in a given album. The user can select up to 6 images across all albums. Pressing a "Done" button in the navigation bar transitions back to the starting view, which now displays the selected images in a grid. And that's it.
In my head, this should be as simple as embedding the starting view in a navigation controller and adding a segue from the "Select" button to the split view. But of course, it doesn't work that way. According to the Apple docs:
Although it is possible to install a split view controller as a child
in some other container view controllers, doing is not recommended in
most cases. Split view controllers are normally installed at the root
of your app’s window.
If at all possible, I would like to retain my user-facing design without any shady business. I strongly suspect that there are one or more "sanctioned" ways to accomplish what I want, but I am too inexperienced with iOS development to know what they might be. Any help is appreciated!
If all you want is to pass back to the starting view controller the array of images, than why not just declare a protocol in the Split ViewController that the starting controller can adopt?

Displaying user information on an popover alert view controller

I am working on an app for a Cafe where users can "sign in" to their seats.
Currently I am thinking of a way to present basic user information of seated people. What I am envisioning is to when the table gets tap, a square information box (pardon my primitive language) appears in the middle with the background being blurred out. I am hoping to have something flexible so that i can add tab and such to this so called box.
I have been looking at popover alert controllers and apparently there is limited information on them in regards to the iPhone. Is there a reason why popover view is not used for iPhones as compared to iPads? Moreover, is there a smarter UI to handle this or should i just segue to the next view when tapped.
Basically, popovers are iPad-only because iPhone screens are too small to make them effective. UIAlertController is a similar alternative, though it may not lend itself to what you're trying to accomplish.
Segueing to a new view for the user information is definitely a solid option, or if you want to preserve the feeling of staying on the same view you can animate a custom view over top of your current view, often from the bottom in the style of a keyboard or the settings drawer.
I think you are mixing up two different concepts: Alerts vs View Controllers being displayed modally.
Alerts – as the name suggests – are used to bring something important to the attention of the user. They usually interupt the current flow.
View Controllers presented modally are similar to what you discribe: a new View Controller moves over the current one, and the current one is blacked out to put emphasis to the new one. As you rightly pointed out though, this is hardly used on iPhone: This is because iPhones historically have rather small screens, and scaling down a view controller leaves hardly any room for content.
View Controllers presented as popovers is yet another thing: Here, you show the new view controller in a separate window that originates from a specific point in your UI.
This document might be of interest for you.
You may want to use a Modally presented View Controller. For this, you will create the view you want to pop up in a separate view controller. Then, control-drag in a segue from the parent view to the Modal of type Present Modally. You can even get your blurriness by setting your Modal's background to clear and adding a Visual Effect with Blur to its view.
Now, give the segue an identifier in the right hand pane so you can call it programatically.

master controller with buttons needs to load pageviewcontroller. master buttons not accessible after first load

I am new to xcode and IOS (and this board. First post).
I am completely flummoxed by a design problem and unsure how to approach.
I have three buttons, each of which calls a new array of pages that need to navigate horizontally with swipe gestures and have their own buttons.
The three buttons in the parent work exactly like a tab bar except they have to be bigger and higher than a tab bar would be. The called page arrays mostly work like a pageviewcontroller except that the pages need to have a button/indicator below to allow non sequential navigation. The target HAS TO LOAD WITH A SEGUE.
The problem I'm encountering is that using a modal segue to load a pageviewcontroller and prepareForSegue to keep the master/parent view controller visible results in my buttons being inaccessible. I assume its because I cant click thought the child view controller.
Secondly, I don't know if its possible to customize the page indicator dots of a pageviewcontroller so they can look like a bar with graphics.
Here are my specific questions:
Is it possible to load a view controller with a modal segue and still access my buttons? Can the child be resized?
can i customize the buttons/indicators in a pageviewcontroller. Can you point me to some code?
should navigation like this be done with some completely different approach? What about a view controller container?
Here's a diagram (cant post images directly yet)
I've found the answer to my second question: It seems that pageViewController's indicators are not customizable in any way. This rules out pageViewController for what I need.
9 Views in 10 hours. Is this not the best forum for questions like this or is there something wrong with my post?

How to swipe and move a UIViewController

I am trying to implement swiping a UIViewController's view up and down. This would be similar to Facebook Paper (swiping down to reveal search, post and other controls), or any other app that gives the user full control of moving the view with their finger.
Does anyone know how to do this efficiently?
The simplest solution is to manage your individual view controllers with a UIPageViewController, described this way on the class reference page:
A page view controller lets the user navigate between pages of
content, where each page is managed by its own view controller object.
Navigation can be controlled programmatically by your app or directly
by the user using gestures. When navigating from page to page, the
page view controller uses the transition that you specify to animate
the change.
You can specify UIPageViewControllerNavigationOrientationVertical as the orientation if you want the pages to move vertically, and you can also specify the gestures and animations used to transition from one view controller to the next.
I ended up finding that menus like this one are what I am looking for.
Though, they aren't recommended by Apple. See WWDC 2014 Videos, Designing Intuitive User Experiences.

Different App types within one app - iOS development

I am more after an opinion about user friendliness for an app I am making.
In the process of planning for my application, I find that some parts of the app will work better with a tab bar view, others with a plain view, and other parts again with navigation view, for tables etc.
I am able to figure out how to do this, but before I get to carried away, would you as a user recommend going with one type and modify the app so it is all the same, or would you as a user feel comfortable having to switch within the app if it is set up and a comfortable change for you?
Thanks in advance for the feedback:-)
Jeff
Tabs and Navigation+tables aren't mutually exclusive. However I would be worried about tabs in some parts and then have the tabs missing ("plain view") for other parts.
I highly recommend you spend time re-thinking your IA (Information Architecture). If tabs make sense, can you model all your app to fit within tabs? If some functionality works as a "plain view" couldn't this view be integrated into the tab model?
As for tabs + navigation, don't forget: it's a tab that contains a navigation controller.
Hope this helps.
Although you can put a tab bar in a navigation controller if you want, as described here: Tab bar controller inside a navigation controller, or sharing a navigation root view
A lot of apps have navigation controllers insides tab bars (think like twitter apps) so users are probably used to that sort of thing - however even when you're navigating inside the tab you can still see the tab bar at the bottom (even if it changes.)

Resources