设置如下所示:
LoginView MvxViewController
MainView MvxTabBarViewController
-Tab 1
- View1 (MvxViewController)
-Tab 2
- View1 (MvxViewController)
-Tab 3
- View1 (MvxViewController)
在 View1 上,我有一个 Tableview(列表),总是以不同的方式填充 - 取决于选项卡。
到目前为止一切正常。我现在面临的问题是,当我在 View1 中并按下 NavigationController 上的“返回”按钮时,我将返回“LoginView”而不是“MainView”(选项卡所在的根视图)。
我找到了以下命令this.NavigationController.PopToRootViewController(true);
,但没有找到正确的使用位置。(如果它是正确的方法)
任何帮助表示赞赏!
编辑:
我现在通过删除以下代码解决了这个问题(删除了注释部分):
public class MyPresenter : MvxModalSupportTouchViewPresenter, ITabBarPresenterHost
{
public MyPresenter(UIApplicationDelegate applicationDelegate, UIWindow window)
: base(applicationDelegate, window)
{
}
protected override UINavigationController CreateNavigationController(UIViewController viewController)
{
var toReturn = base.CreateNavigationController(viewController);
toReturn.NavigationBarHidden = false;
return toReturn;
}
public ITabBarPresenter TabBarPresenter { get; set; }
public override void Show(IMvxTouchView view)
{
//if (TabBarPresenter != null && view != TabBarPresenter)
//{
// TabBarPresenter.ShowView(view);
// return;
//}
base.Show(view);
}
}
我仍然不明白这段代码的目的,因为它正在制造麻烦。通过删除它,一切正常。(代码来自示例,可在此处找到:https ://github.com/slodge/MvvmCross-Tutorials/blob/0f313e3be66b06c110f587b653b9b0c831fb7164/Sample%20-%20CirriousConference/Cirrious.Conference.UI.Touch/ConferencePresenter.cs )