Skip to content
This repository was archived by the owner on May 1, 2024. It is now read-only.

Commit 5eb6e1e

Browse files
authored
Fix iOS Gallery (#12162)
1 parent 8a13756 commit 5eb6e1e

File tree

4 files changed

+30
-5
lines changed

4 files changed

+30
-5
lines changed

Stubs/Xamarin.Forms.Platform.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,9 @@ internal class _PageRenderer { }
173173
internal class _FlyoutPageRenderer { }
174174

175175
#if !__IOS__ && !TIZEN4_0
176-
[RenderWith(typeof(Android.AppCompat.MasterDetailPageRenderer))]
176+
#pragma warning disable CS0618 // Type or member is obsolete
177+
[RenderWith(typeof(MasterDetailRenderer))]
178+
#pragma warning restore CS0618 // Type or member is obsolete
177179
#elif TIZEN4_0
178180
#pragma warning disable CS0618 // Type or member is obsolete
179181
[RenderWith (typeof(MasterDetailPageRenderer))]

Xamarin.Forms.ControlGallery.iOS/RegistrarValidationService.cs

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,27 @@ public bool Validate(VisualElement element, out string message)
1919

2020
var renderer = Platform.iOS.Platform.CreateRenderer(element);
2121

22-
if (renderer == null
22+
#pragma warning disable CS0618 // Type or member is obsolete
23+
if (element is MasterDetailPage)
24+
{
25+
if (renderer == null
26+
|| renderer.GetType().Name == "DefaultRenderer"
27+
|| (Device.Idiom == TargetIdiom.Tablet && !(renderer is TabletMasterDetailRenderer))
28+
|| (Device.Idiom == TargetIdiom.Phone && !(renderer is PhoneMasterDetailRenderer))
29+
)
30+
{
31+
message = $"Failed to load proper iOS renderer for {element.GetType().Name}";
32+
return false;
33+
}
34+
35+
return true;
36+
}
37+
#pragma warning restore CS0618 // Type or member is obsolete
38+
39+
if (renderer == null
2340
|| renderer.GetType().Name == "DefaultRenderer"
24-
|| (element is FlyoutPage && Device.Idiom == TargetIdiom.Tablet && !(renderer is TabletMasterDetailRenderer))
25-
|| (element is FlyoutPage && Device.Idiom == TargetIdiom.Phone && !(renderer is PhoneMasterDetailRenderer))
41+
|| (element is FlyoutPage && Device.Idiom == TargetIdiom.Tablet && !(renderer is TabletFlyoutPageRenderer))
42+
|| (element is FlyoutPage && Device.Idiom == TargetIdiom.Phone && !(renderer is PhoneFlyoutPageRenderer))
2643
)
2744
{
2845
message = $"Failed to load proper iOS renderer for {element.GetType().Name}";

Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Helpers/ViewHelper.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ public static List<Page> GetAllPages()
4343
{
4444
var controls = new List<Page>
4545
{
46+
#pragma warning disable CS0618 // Type or member is obsolete
47+
new MasterDetailPage { Master = new Page { Title = "Flyout" }, Detail = new Page() },
48+
#pragma warning restore CS0618 // Type or member is obsolete
4649
new FlyoutPage { Flyout = new Page { Title = "Flyout" }, Detail = new Page() },
4750
new NavigationPage(new Page()),
4851
new Page(),

Xamarin.Forms.Platform.iOS/Renderers/PhoneFlyoutPageRenderer.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -544,6 +544,9 @@ void ApplyDetailShadow(nfloat percent)
544544

545545
public class PhoneMasterDetailRenderer : PhoneFlyoutPageRenderer
546546
{
547-
547+
[Preserve(Conditional = true)]
548+
public PhoneMasterDetailRenderer()
549+
{
550+
}
548551
}
549552
}

0 commit comments

Comments
 (0)