gpt4 book ai didi

c# - Xamarin 表格 : How to access "tabBarController: shouldSelectViewController:"

转载 作者:行者123 更新时间:2023-12-01 19:38:47 24 4
gpt4 key购买 nike

我需要控制此方法,以便我可以在我的应用程序中进行更改。但是我无法使这个实现工作,有人可以帮忙吗?

这是我的 TabbedPage 的自定义渲染器:

public class MainTabbedPageRenderer : TabbedRenderer, IUITabBarControllerDelegate
{
[Export("tabBarController:shouldSelectViewController:")]
public bool ShouldSelectViewController(UITabBarController tabBarController, UIViewController viewController)
{
return false;
}
}

断点根本不会停在那里。

我的印象是它不会在断点处停止,因为 TabBarController 始终为空,但屏幕加载并正常执行导航,我也无法填充此 TabBarController。

您可以使用此方法单击标签栏项目:
[Export("tabBar:didSelectItem:")]
public void ItemSelected(UITabBar tabbar, UITabBarItem item)
{
}

最佳答案

我没有看到你在哪里分配你的代表。这可能是它没有被命中的原因,您没有将委托(delegate)分配给 UITabBarController(这是 TabbedRenderer 的基类)。此外,TabbedRenderer 已经分配了一个委托(delegate),因此您可能不想替换它。

也就是说,Xamarin.iOS 实际上定义了 C# delegate , 称为 UITabBarSelection , 对于 ShouldSelectViewController协议(protocol)方法。在 TabbedRenderer 上有一处房产调用ShouldSelectViewController这允许您设置此委托(delegate)方法,因此您应该能够这样做:

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;
}
}

关于c# - Xamarin 表格 : How to access "tabBarController: shouldSelectViewController:",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58494412/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com