【问题标题】:Monotouch Replacing the RootViewControllerMonotouch 替换 RootViewController
【发布时间】:2013-05-09 22:22:19
【问题描述】:

使用 MonoTouch,我将 LogonViewController 添加到窗口并在 FinishedLaunching 上显示它:

        window = new UIWindow(UIScreen.MainScreen.Bounds);
        window.RootViewController = new LogonViewController();
        window.MakeKeyAndVisible();

LogonViewController 中,如何添加名为 MainViewContoller 的主 VC 并删除 LogonViewController? (这是用户登录后将发生的操作。)

【问题讨论】:

    标签: iphone xamarin.ios xamarin monotouch.dialog


    【解决方案1】:

    即使可以替换window.RootViewController,通常也不是这样。大多数时候,您定义您的RootViewController 并从那里处理您的导航,包括登录。至少我是这样做的。

    //AppDelegate.cs
    public override bool FinishedLaunching (UIApplication app, NSDictionary options)
    {
        window = new UIWindow (UIScreen.MainScreen.Bounds);
        window.RootViewController = new MainViewController ();      
        window.MakeKeyAndVisible ();
        return true;
    }
    
    //MainViewController.cs
    public override void ViewDidLoad ()
    {
        base.ViewDidLoad ();
        if (not_logged_in)
            PresentViewController (new LoginViewController (), true, ()=>{});
    }
    

    【讨论】:

      【解决方案2】:

      这就是我以前的做法。

      public static void swapRootView(UIViewController newView, UIViewAnimationOptions opt)
              {
                  UIView.Transition(mainWindow, 0.5, opt, delegate{
                      mainWindow.RootViewController = newView;
      
                  },null);
              }
      

      然后登录ok后,用这个选项调用那个方法。

      swapRootView(yourNewViewController, UIViewAnimationOptions.TransitionFlipFromRight);
      

      【讨论】:

        猜你喜欢
        • 2012-10-28
        • 1970-01-01
        • 1970-01-01
        • 2013-10-27
        • 1970-01-01
        • 2012-02-08
        • 2017-04-29
        • 2011-08-15
        • 2011-12-03
        相关资源
        最近更新 更多