Bug 60107 - Since the latest Visual Studio for Mac (and Mono) update, the NavigationPage Icons are not there on iPads
Summary: Since the latest Visual Studio for Mac (and Mono) update, the NavigationPage ...
Status: NEEDINFO
Alias: None
Product: Forms
Classification: Xamarin
Component: iOS ()
Version: 2.4.0
Hardware: PC Mac OS
: --- normal
Target Milestone: ---
Assignee: Bugzilla
URL:
Depends on:
Blocks:
 
Reported: 2017-10-10 22:16 UTC by Sebastian Kruse
Modified: 2017-10-11 12:06 UTC (History)
4 users (show)

Tags:
Is this bug a regression?: ---
Last known good build:

Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.


Please create a new report for Bug 60107 on Developer Community or GitHub if you have new information to add and do not yet see a matching new report.

If the latest results still closely match this report, you can use the original description:

  • Export the original title and description: Developer Community HTML or GitHub Markdown
  • Copy the title and description into the new report. Adjust them to be up-to-date if needed.
  • Add your new information.

In special cases on GitHub you might also want the comments: GitHub Markdown with public comments

Related Links:
Status:
NEEDINFO

Description Sebastian Kruse 2017-10-10 22:16:48 UTC
I tried different versions of my code (also some where I now that it works) but since the latest Visual Studio for Mac and Mono update, the icons on the NavigationPage (such as MasterDetail-Icon) are no longer present on iPads (they work on iPhones). Need a quick fix, I was just in a release cycle for a few apps and I can't publish them this way...
Comment 1 Sebastian Kruse 2017-10-10 22:20:09 UTC
I might not be the only person with problems. Just found this and try to downgrade my installation: https://forums.xamarin.com/discussion/104692/how-to-downgrade-visual-studio-for-mac
Comment 2 Paul DiPietro [MSFT] 2017-10-10 22:23:46 UTC
Recategorizing since it sounds like it's a VSfM issue?
Comment 3 Sebastian Kruse 2017-10-10 22:25:32 UTC
I guess it is more a problem with the Xamarin.iOS installation (or the Mono compiler). It does not work with the older 7.1.5 VSfM (which works before the update today of all components)...
Comment 4 Sebastian Kruse 2017-10-10 22:40:38 UTC
Okay, I have no idea anymore what causes this problem. I tried different versions of VSfM, Mono MDK, Xamarin.iOS and of my code. Nothing seems to work but it worked on the last release back on the end of August this year. Something is broken because all my apps are afflicted by this.
Comment 5 Sebastian Kruse 2017-10-10 22:56:42 UTC
So just done a few tests with it. It has the same behavior with VS on Windows as on VS for Mac. My old Mac is still running an old version of Xamarin.iOS (and XCode 8) and there it works fine. Is there some way to downgrade all updates from today/yesterday? Because it works on the debug builds the whole week until this update. I guess I already downgrade everything but I think I miss something.
Comment 6 Chris Hardy [MSFT] 2017-10-10 23:27:03 UTC
Hey Sebastian,

Could you share your full version information and the explicit code that you're running to reproduce the issue - a simple project showing the issue would be great so we can take a look into this problem. Do you see the same behaviour if you use an older version of Forms if you've tried different versions of VSfM/Xamarin.iOS without much luck?

Thanks,

ChrisNTR
Comment 7 Sebastian Kruse 2017-10-11 00:02:03 UTC
So far this issue occurs also with an older Version of Xamarin.Forms (tested with 2.4 and 2.3.4 - 2.3.4 works before). I tried to setup a clean small project but it seems to work there... Is there maybe any problem with huge projects? All projects with the problem seems to be bigger than 100mb ipa file size.
Comment 8 Sebastian Kruse 2017-10-11 00:57:34 UTC
I just use one of my projects that I have to publish as soon as possible (it's an update to the Breath Companion app). It is a total cut down so that the code is nothing worth in reality but it showcases this problem pretty good. 

Here is the project: https://secure.kruse-familie.eu/Zelda.BotW.Map.zip 

I'm not so sure anymore where this bug is located because it works before the update from today... but on the other hand a clean new project work while my code wont work if I use a version a few days ago (or even a few month ago) which works for sure before..
Comment 9 Sebastian Kruse 2017-10-11 11:10:15 UTC
Okay, I just found out why this is happening. All my projects using a custom renderer for the MasterDetail page because the Xamarin.Forms team is still not able to fix the annoying Master-Overlay-Bug in SplitView (as soon as Width is 50% or less, the Master view is always displayed and can't be closed). Thins bug was first reported back in 2016 and is still present...
Comment 10 Sebastian Kruse 2017-10-11 11:13:51 UTC
This right here is my custom renderer: 

[assembly: ExportRenderer(typeof(MasterDetailPage), typeof(CustomTabletMasterDetailRenderer), UIUserInterfaceIdiom.Pad)]
namespace Zelda.BotW.Map.iOS.Renderer
{
    public class CustomTabletMasterDetailRenderer : TabletMasterDetailRenderer
    {
        public override UITraitCollection TraitCollection => UITraitCollection.FromHorizontalSizeClass(UIUserInterfaceSizeClass.Regular);

        protected override void OnElementChanged(VisualElementChangedEventArgs e)
        {
            base.OnElementChanged(e);
            PreferredDisplayMode = UISplitViewControllerDisplayMode.PrimaryOverlay;
        }
        
        public override void WillRotate(UIInterfaceOrientation toInterfaceOrientation, double duration)
        {
            base.WillRotate(toInterfaceOrientation, duration);
            PreferredDisplayMode = UISplitViewControllerDisplayMode.PrimaryOverlay;
        }
    }
}

As soon as this line is active, this strange bug happens with the latest compiler: 

public override UITraitCollection TraitCollection => UITraitCollection.FromHorizontalSizeClass(UIUserInterfaceSizeClass.Regular);

So I had to drop SplitView support if I want to release now because a so old bug is still there and the only workaround got screwed by a compiler update...
Comment 11 Sebastian Kruse 2017-10-11 11:20:07 UTC
Here is the bug why this workaround is required: https://bugzilla.xamarin.com/show_bug.cgi?id=37737