gpt4 book ai didi

xamarin.ios - TabBarViewController 不能作为子项呈现。考虑使用 Root 代替

转载 作者:行者123 更新时间:2023-12-04 03:14:56 25 4
gpt4 key购买 nike

在我的 iOS 应用程序(我使用 Xamarin 和 MvvmCross 构建)开始时,我想立即更改 UIViewControllerUITabBarViewController 。我的代码:

public class MainViewModel : BaseViewModel
{
public void Initialization()
{
ShowViewModel<TabLayoutViewModel>(); // Breaks here
}
}

public class MainViewController : BaseViewController<MainViewModel>
{
public override void ViewDidLoad()
{
base.ViewDidLoad();

this.ViewModel.Initialization();
}
}

public class TabLayoutViewController : MvxTabBarViewController<TabLayoutViewModel>
{
}

上线ShowViewModel<TabLayoutViewModel>()它抛出异常:

A TabBarViewController cannot be presented as a child. Consider using Root instead

我只想将此 Controller 插入堆栈顶部。我知道这在普通 iOS 中是合法的,所以应该有办法用 MvvmCross 来做到这一点?

最佳答案

更新:从 MvvmCross 5.0.4 开始,现在可以将 TabBarController 显示为子级。只需用 [MvxChildPresentation] 标记您的 TabBarController 即可。

查看此PR到源代码..


原答案:

TabBarController 并不意味着要在 UINavigationController 内呈现。您可以做的就是更改 Window 的根 ViewController。为此,您可以在 TabLayoutViewController 类上方添加 MvxRootPresentation 属性。

如果您确实需要在 UINavigationController 内显示选项卡,您可能会发现 this question相关。

关于xamarin.ios - TabBarViewController 不能作为子项呈现。考虑使用 Root 代替,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44418163/

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