Cocoa 如何以编程方式从AppDelegate设置初始ViewController?
作为我的问题,我陷入了这一点。实际上,我的问题是,在我的示例中,我必须在应用程序启动时显示登录屏幕,如果用户成功使用其凭据登录,他/她将重定向到主屏幕。如果用户第二次打开应用程序,我必须显示主屏幕,因为他已经登录 如何解决此问题?在AppDelegate中:Cocoa 如何以编程方式从AppDelegate设置初始ViewController?,cocoa,xamarin,xamarin.mac,Cocoa,Xamarin,Xamarin.mac,作为我的问题,我陷入了这一点。实际上,我的问题是,在我的示例中,我必须在应用程序启动时显示登录屏幕,如果用户成功使用其凭据登录,他/她将重定向到主屏幕。如果用户第二次打开应用程序,我必须显示主屏幕,因为他已经登录 如何解决此问题?在AppDelegate中: public override bool FinishedLaunching(UIApplication app, NSDictionary options) { window = new UIWindow(UIScree
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
window = new UIWindow(UIScreen.MainScreen.Bounds);
// If you have defined a root view controller, set it here:
if(LoggedIn)
window.RootViewController = new MainController();
else
window.RootViewController = new LoginController();
// make the window visible
window.MakeKeyAndVisible();
return true;
}
首先,您需要打开情节提要,选择窗口控制器,并在属性检查器中取消选中“Is initial controller”,以防止cocoa加载初始控制器 然后像这样:
NSWindowController controller;
public override void DidFinishLaunching (NSNotification notification)
{
var storyboard = NSStoryboard.FromName ("Main", null);
if (true)
controller = (NSWindowController)storyboard.InstantiateControllerWithIdentifier ("FirstController");
else
controller = (NSWindowController)storyboard.InstantiateControllerWithIdentifier ("SecondController");
controller.Window.MakeKeyAndOrderFront (this);
}
FirstController和SecondController是主情节提要中两个NSWindowController的标识符。在应用程序首选项中存储标志“LoggedIn”,并基于它导航感谢您的响应我没有在我的AppDelegate中的xamarin.ios中执行示例没有显示RootViewController选项:(这是我的代码public override void didfinishlauncing(NSNotificationnotification){if(isAlreadyLoggedIn){this//不显示选项“window”和“RootViewController”}否则{}}非常感谢,我会尝试一下