从堆栈中删除ViewController

Bja*_*rke 3 stack uiviewcontroller xamarin.ios mvvmcross

在我们的应用程序中,我们有一个登录ViewController A.在用户登录时,会自动调用请求导航以导航到下一个ViewController B.然而,当这样做,我们要删除的登录ViewController A从堆栈,使用户不能"回头"的登录观点,但追溯到以前的ViewController前登录代替.

我们考虑过ViewController AViewController B加载时从堆栈中删除它,但是有更好的方法吗?

在我们设置的Android版本的应用程序history=no(如果我没记错),然后它的工作原理.

是否有类似的方法在MonoTouch和MvvmCross中实现这一目标?

Bja*_*rke 8

我最终从导航控制器中删除了不需要的viewcontroller.在ViewDidDisappear()我的登录中,ViewController我做了以下事情:

public override void ViewDidDisappear (bool animated)
{
    if (this.NavigationController != null) {
        var controllers = this.NavigationController.ViewControllers;
        var newcontrollers = new UIViewController[controllers.Length - 1];
        int index = 0;
        foreach (var item in controllers) {
            if (item != this) {
                newcontrollers [index] = item;
                index++;
            }

        }
        this.NavigationController.ViewControllers = newcontrollers;
    }
    base.ViewDidDisappear(animated);
}
Run Code Online (Sandbox Code Playgroud)

这样我ViewController就可以从视图中删除不需要的东西.我不完全相信它是否是正确的方式,但它的工作相当不错.