以下のようなコードで、
iOSのレンダラーは問題なく動作するのですが、Androidのレンダラーがbase.OnElementChangedにてInvalidCastExceptionが出てしまいます。
このような症状に心当たりのある方、私めにヒントの糸口をください・・・。
Forms
namespace TestApp { public partial class CustomNavigationPage : NavigationPage { public NaviBasePage(Page page) : base(page) { InitializeComponent(); var name = "test"; ToolbarItem t = new ToolbarItem(name, null, () => { App.Current.MainPage = new NextPage(); }); ToolbarItems.Add(t); } } }
Android ※base.OnElementChangedにてInvalidCastException
オーバーライドを抜かしても同じことになります
[assembly: ExportRenderer(typeof(CustomNavigationPage), typeof(NavigationPageRendererDoid))] namespace TestApp.Droid { public class NavigationPageRendererDoid : NavigationRenderer { protected override void OnElementChanged(ElementChangedEventArgs<NavigationPage> e) { base.OnElementChanged(e); //操作 } } }
iOS
[assembly: ExportRenderer(typeof(CustomNavigationPage), typeof(NavigationPageRendereriOS))] namespace TestApp.iOS { public class NavigationPageRendereriOS : NavigationRenderer { public override void PushViewController(UIKit.UIViewController viewController, bool animated) { base.PushViewController(viewController, animated); //操作 } } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/08 01:04