Prism Xamarin Forms CustomRenderer 在 iOS 中导致导航问题

Prism Xamarin Forms CustomRenderer causing navigation issue in iOS

我在 Xaml 中使用自定义标签,它有自定义渲染器。这似乎在 Android 中工作正常,但在 iOS 中却不行。

Repro:运行 iOS 中的应用程序。点按 主页 转到主页。点击登录。模态登录页面将显示一个开关。切换(或不切换)开关并点击 完成。返回主页,它检查 INavigationAware.OnNavigatedTo() 中的结果并显示一个对话框。但是,在 iOS 中,当我使用具有自定义渲染器的 XfLabel 时,它不会被调用。不使用自定义渲染器将导致正确的行为。

XF 的 ExportRenderer 机制是否以某种方式在 iOS 上干扰了 Prism 的 DI?

Prism.Forms (6.2)

XF (2.3)

示例代码:https://github.com/hnabbasi/xamarin/tree/master/XFPrism/XFPrism

对于遇到此问题的任何人。正如 Brian Lagunas 所指出的,这是我的自定义渲染器中的一个疏忽。我没有更新 OnElementChanged() 中的本机控件,而是更新了 XF 元素。

应该像这样更新本机控件

Control.TextColor = UIColor.Purple; // iOS

Control.SetTextColor(Android.Graphics.Color.Purple); // Android

而不是

Element.TextColor = Color.Purple;

这个故事的寓意:欲速则不达 ;)