安装程序如下所示:
LoginView MvxViewController
MainView MvxTabBarViewController
-Tab 1
- View1 (MvxViewController)
-Tab 2
- View1 (MvxViewController)
-Tab 3
- View1 (MvxViewController)
在View1上我有一个Tableview(列表),将以不同方式填充 - 取决于选项卡。
到目前为止一切正常。我现在面临的问题是,当我在View1中并按下NavigationController上的“后退”按钮时,我将返回“LoginView”而不是“MainView”(选项卡所在的Rootview)。
我找到了以下命令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)
答案 0 :(得分:1)
一般来说,您可以将CustomPresenter用于此类逻辑 - 例如,请参阅http://mvvmcross.wordpress.com中的N = 25。
您的自定义演示者可以执行以下操作:
Show
个请求委托给位于标签页中的导航控制器:例如https://github.com/slodge/NPlus1DaysOfMvvmCross/blob/master/N-25-Tabbed/Tabbed.Touch/Setup.cs#L58 直接操纵UIViewController[]
数组 - 例如
public override void Show(IMvxTouchView view)
{
base.Show(view);
if (view is MainView
&& MasterNavigationController.ViewControllers.Length > 1)
{
MasterNavigationController.ViewControllers = new UIViewController[]
{
MasterNavigationController.ViewControllers.Last()
};
}
}
有关自定义演示者的详细信息,请参阅https://github.com/slodge/MvvmCross/wiki/Customising-using-App-and-Setup#custom-presenters和http://slodge.blogspot.co.uk/2013/06/presenter-roundup.html
这篇文章可能特别有用 - http://deapsquatter.blogspot.co.uk/2013/06/custom-presenter-for-uitabbarcontroller.html