3

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

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

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

4

2 回答 2

6

即使可以替换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, ()=>{});
}
于 2013-05-10T08:13:24.510 回答
5

对于它的价值,这是我以前做过的事情。

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

            },null);
        }

然后登录成功后,使用此选项调用该方法。

swapRootView(yourNewViewController, UIViewAnimationOptions.TransitionFlipFromRight);
于 2013-05-13T01:30:54.040 回答