Monotouch回到第一个ViewController

时间:2012-03-05 22:25:02

标签: ios uiviewcontroller xamarin.ios uitabbar

我有一个问题再次回到我的第一个Apps VC,第一个“screen / ViewController”是一个登录屏幕,然后我用他们各自的ViewControllers调用一个UITabbar,当我在某个级别的一个ViewController(例如第五个)我想在我的应用程序中获得“注销”行为并返回第一个ViewController(登录)。但我想我只能导航回我的Tabbar控件的第一个ViewController。我正在尝试使用VC的这些方法:

this.NavigationController.PopToViewController(previousVC,TRUE); 要么 this.NavigationController.PopToRootViewController(真);

任何帮助都将不胜感激。

(如果您需要更多详细信息,请告诉我相关信息)

    //Call to the tab bar from the login viewcontroller
    mainTBC = new TabBarMenuPpal ();
this.NavigationController.PushViewController (mainTBC, true);
…

//Tabbarmenuppal with a set of navcontrollers 
public TabBarMenuPpal ()
{
    var customerVC = new Customers ();
    navCustomers = new UINavigationController ();
    navCustomers.PushViewController (customerVC, true);
    navCustomers.TopViewController.Title = customersTitle;
    navCustomers.TabBarItem = new UITabBarItem (customersTitle, UIImage.FromFile ("Utility/Images/Cust-30x30.png"), 0);
    …
    mainVC = new UIViewController[]
    {
          navCustomers
        , navSettings
    } ;
    this.ViewControllers = mainVC;
}

问题是,当我开始在navCustomers中导航时,我无法找到返回登录VC的方法(删除我的标签栏并释放所有资源)。 (抱歉我的英文)。

1 个答案:

答案 0 :(得分:0)

我不知道它是否是最佳解决方案,但我已经实施了一个" GoToLogin"在我的UITabBarController中只执行此操作的方法:

public void GoToLogin()
{
   this.NavigationController.PopToRootViewController(true);
}

因此,当我需要转到第一页时,我只会这样做:

if(MainDialog.NavigationController.TabBarController != null)//loaded from the tab bar
              ((TabBarMenuPpal)MainDialog.NavigationController.TabBarController).GoToLogin();
else//loaded from the login screen  
              MainDialog.NavigationController.PopToRootViewController(true);