2013-05-09 73 views
3

使用MonoTouch的我在FinishedLaunching一個LogonViewController添加到窗口,並顯示:MonoTouch的更換RootViewController的

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

LogonViewController,我怎麼添加的主要VC,稱爲MainViewContoller並取出LogonViewController? (這是用戶登錄後會發生的操作。)

回答

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,()=>{}); 
} 
5

爲什麼它的價值是我以前做過的。

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

      },null); 
     } 

然後登錄後可以使用該選項調用該方法。

swapRootView(yourNewViewController, UIViewAnimationOptions.TransitionFlipFromRight); 
+0

這是一個非常好的方法。 +1點 – 2013-05-13 02:18:32

相關問題