2016-09-13 83 views
0

我在自定义渲染器的Xaml中使用自定义标签。这似乎在Android中正常工作,但在iOS中不起作用。棱镜Xamarin形式CustomRenderer在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

回答

0

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

应该更新的本地控制,这样

Control.TextColor = UIColor.Purple; // iOS 

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

而不是

Element.TextColor = Color.Purple; 

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