2016-09-13 82 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; 

這個故事的寓意:欲速則不達;)