tabbar controller inside navigation controller (storyboards!) - uinavigationcontroller

I know that this question was discussed few times here, and in other websites, but posts are old (from 2009 or 2011) because of this they can't account changes in Apple environment.
So I started to build app firstly with navigation controller. In second view I need to switch to tab bar.
Now, I found posts that this is bad approach and the good one is to embed navigation controller inside tab bar not vice versa.
What is more my approach is working (segue from navigation controller to tab bar controller) and that posts are old.
Is something changed in iOS 6.0?
Which approach is correct?
link to image: http://i.imgur.com/f6kICKu.png

Related

How do I change the content shown in the master section of a master detail page using Prism

I'm migrating our app from MvvmCross as we need to add Intune support and using MVX is preventing this.
The app is essentially an email reader, so currently we are using a MasterDetail page and loading a folder list into master which on phones becomes the flyout and on tablets this appears in the left of the split view.
When you select a folder from this page we then show a message list - this loads into the detail on phone, but for tablets we use MVX functionality to load this into master, this is also wrapped inside a nav page so you can go back to the folder list. Essentially we have a nav stack inside the master section on tablets and also one in the detail section.
I've checked and played around with the Prism samples, but they don't appear to cover this scenario. The documentation recommends only having fixed content in the master section and this is bound to the master detail view model. This is different to what we have currently, essentially we can control where any page ends up depending on idiom.
I would just like confirmation that it is possible for me to be able to load a page into detail or master depending on the device idiom and any examples would be greatly appreciated!
The Master property of the MasterDetailPage is a basic Page object so it does not have a navigation stack available but the property itself does have a getter and a setter so you should be able to set the page manually. We use a master page and as a quick test I was able to set it using:
((MasterDetailPage)Application.Current.MainPage).Master = new SwapMaster();
What might be possible that I didn't try is actually set the Master as a NavigationPage. Then you might be able to push onto the Master's navigation stack. Again, I did not try this ATM.
Update:
So I did play around quickly with setting the Master to a navigation page and then pushing and popping pages on and off the stack. It did work but the behavior was a little squirrelly but it does show it might be possible.
Push on the stack:
((NavigationPage)Master).Navigation.PushAsync(new SwapMasterPage());
Pop the stack:
((NavigationPage)((MasterDetailPage)Application.Current.MainPage).Master).Navigation.PopAsync();
I've answered this myself by taking a look in the source and there is no support in the Prism navigation service to load a page into master. Everything is overridable, but I feel it would result in lots of changes and issues if I try and introduce this concept.
We'll have to discuss internally if changing the UI flow on tablets is acceptable, if not then Prism is a no go and we'll look at alternatives or write our own navigation service to support it.

bypass tab click in tabbed page

My application is using a tabbed page to separate 2 main areas. Using Xamarin.Forms 4.x and Prism.
The first tab basically hosts a set of linear navigated views modelling a workflow. It's been identified that when a user has progressed through the workflow, and accidentally taps on the current tab, the user is popped back to the start of the navigation.
Is there any way to bypass this event?
This only seems to happen on iOS.
I just discovered the answer. Works perfectly.
https://forums.xamarin.com/discussion/144478/ios-stop-tab-re-select-pop-to-navigation-page-root

How to add back navigation functionality to standard SAPUI5 application 'ar_srvc_news'?

I have configured a news tile in Fiori Launchpad and linked the ar_srvc_news (found in the SPBUTIL role in lpd_cust) UI5 application to it. Is there a way to enable back navigation functionality in it similar to the one that exists in SAP Fiori Trial website (highlighted in below image)?
The tile configured in our system opens the News application without any header. I checked the BSP application AR_SRVC_NEWS in SE80 and the view that displays these news items is NewsTileDrillDown.view.js. The navigation button that allows back navigation has not been enabled in it. I assume we set the showNavButton for sap.m.Page to be true to enable this functionality. Feel free to correct me if this is not correct.
Also, a blank window opens up upon clicking on any of the news items. The application is displaying sap.suite.ui.commons.FeedItemHeader for displaying the news items. How to disable this navigation? I observed that in SAP Fiori Trial website, only the last news item is clickable and opens a new window. We are following the same RSS feed hierarchy as the website's but this does not help.

MasterDetail and NavigationPage deeplinking in Prism Forms

I am testing the deeplinking feature of the Prism Forms framework. I currently have a situation where I have a MasterDetailPage with a menu as Master. When I click the menu items, the Details should change to specific pages with a clean NavigationPage as container.
When I check the Sandbox example for Prism Forms, it shows an example for MasterDetail navigation, but not including navigation pages.
So I have this (absolute) deeplink structure at startup: /MasterDetailPage/NavigationPage/MyFirstPage
Then I want the second menu item to link to a fresh NavigationPage:
/MasterDetailPage/NavigationPage/MySecondPage
My current workaround is to do absolute deeplinking, but I was wondering if there is a better way? The Prism PageNavigationService checks to see if the segment type is the same as the current detail type. But since these are both NavigationPages, it tries to add the new page in the already existing NavigationPage. At that moment it also kills the menu-icon (at least on iOS).
Actually, the Sandbox app does use NavigationPages in the MasterDetail: https://github.com/PrismLibrary/Prism/blob/master/Sandbox/Xamarin/HelloWorld/HelloWorld/HelloWorld/Views/MyMasterDetail.xaml
Prism reuses the detail page for performance reasons, but it doesn't work like you think it does. While it does add the new page to the NavigationPage's NavigationStack, it also removes the previous page from the stack. This keeps the NavigationStack in the proper state.
The icon behavior you are seeing is because of a confirmed bug in Xamarin.Forms. You can follow the issue here: https://bugzilla.xamarin.com/show_bug.cgi?id=41038
As soon as Xamarin fixes this bug, I will publish the fix to Nuget. In the mean time, the only way to get around this is to fork the Prism code base and remove the Page type check.

Adding Sub-banners Using CSS

For my final project I am developing a student management system. For student, teacher, and parent pages along with the main banner I have designed sub-banners using divs. The issue is that when I load some of my forms (reportcard-student/addmarks-teacher/viewreport-parent) where I use same page modified, when I press reportcard-student the first time the link goes to the proper banner but when clicked twice it is redirected to one of the other two banners. How can I modify my HTML/CSS code?

Resources