Xamarin 表单:如何访问 "tabBarController: shouldSelectViewController:"
Xamarin forms: How to access "tabBarController: shouldSelectViewController:"
我需要控制此方法,以便我可以在我的应用程序中进行更改。但是我无法使这个实现工作,有人可以帮忙吗?
这是我的 TabbedPage 的自定义渲染器:
public class MainTabbedPageRenderer : TabbedRenderer, IUITabBarControllerDelegate
{
[Export("tabBarController:shouldSelectViewController:")]
public bool ShouldSelectViewController(UITabBarController tabBarController, UIViewController viewController)
{
return false;
}
}
断点根本不止于此。
我的印象是它不会在断点处停止,因为 TabBarController 始终为 null,但屏幕加载和执行导航正常,我也无法填充此 TabBarController。
您可以使用此方法点击标签栏项目:
[Export("tabBar:didSelectItem:")]
public void ItemSelected(UITabBar tabbar, UITabBarItem item)
{
}
我没看到你在哪里分配你的代表。这可能就是它未被命中的原因,您尚未将委托分配给 UITabBarController(这是 TabbedRenderer 的基础 class)。此外 TabbedRenderer 已经分配了一个委托,因此您可能不想替换它。
也就是说,Xamarin.iOS实际上为ShouldSelectViewController
协议方法定义了一个C# delegate,叫做UITabBarSelection
。 TabbedRenderer
上有一个名为 ShouldSelectViewController
的 属性 允许您设置此委托方法,因此您应该可以这样做:
public class MainTabbedPageRenderer : TabbedRenderer
{
protected override void OnElementChanged(VisualElementChangedEventArgs e)
{
base.OnElementChanged(e);
if (e.NewElement != null)
this.ShouldSelectViewController = ShouldSelectViewControllerHandler;
}
bool ShouldSelectViewControllerHandler(UITabBarController tabBarController, UIViewController viewController)
{
return false;
}
}
我需要控制此方法,以便我可以在我的应用程序中进行更改。但是我无法使这个实现工作,有人可以帮忙吗?
这是我的 TabbedPage 的自定义渲染器:
public class MainTabbedPageRenderer : TabbedRenderer, IUITabBarControllerDelegate
{
[Export("tabBarController:shouldSelectViewController:")]
public bool ShouldSelectViewController(UITabBarController tabBarController, UIViewController viewController)
{
return false;
}
}
断点根本不止于此。
我的印象是它不会在断点处停止,因为 TabBarController 始终为 null,但屏幕加载和执行导航正常,我也无法填充此 TabBarController。
您可以使用此方法点击标签栏项目:
[Export("tabBar:didSelectItem:")]
public void ItemSelected(UITabBar tabbar, UITabBarItem item)
{
}
我没看到你在哪里分配你的代表。这可能就是它未被命中的原因,您尚未将委托分配给 UITabBarController(这是 TabbedRenderer 的基础 class)。此外 TabbedRenderer 已经分配了一个委托,因此您可能不想替换它。
也就是说,Xamarin.iOS实际上为ShouldSelectViewController
协议方法定义了一个C# delegate,叫做UITabBarSelection
。 TabbedRenderer
上有一个名为 ShouldSelectViewController
的 属性 允许您设置此委托方法,因此您应该可以这样做:
public class MainTabbedPageRenderer : TabbedRenderer
{
protected override void OnElementChanged(VisualElementChangedEventArgs e)
{
base.OnElementChanged(e);
if (e.NewElement != null)
this.ShouldSelectViewController = ShouldSelectViewControllerHandler;
}
bool ShouldSelectViewControllerHandler(UITabBarController tabBarController, UIViewController viewController)
{
return false;
}
}