cocoa - 如何以编程方式从 AppDelegate 设置初始 ViewController?

标签 cocoa xamarin xamarin.mac

作为我的问题,我陷入了这一点。实际上我的问题是,在我的示例中,如果用户使用他/她的凭据成功登录,我必须在应用程序启动时显示登录屏幕,他/她将重定向到主屏幕。如果用户第二次打开应用程序,我必须显示主屏幕,因为他已经登录。

如何解决这个问题?

最佳答案

首先,您需要通过打开 Storyboard、选择窗口 Controller 并在属性检查器中取消选中“Is Initial Controller”来防止 cocoa 加载初始 Controller

然后是这样的:

    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 是主 Storyboard中两个 NSWindowController 的标识符。

关于cocoa - 如何以编程方式从 AppDelegate 设置初始 ViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41300778/

相关文章:

objective-c - cocoa : while(index >= 0) 继续,即使index == -1

android - 有没有办法在 AXML 中通过 DIP 对齐编辑文本中的文本?

macos - 如何删除 NSNotification Observer Xamarin

c# - 当用户右键单击 NSTableCellView Xamarin.Mac 时如何创建和显示菜单

xamarin - 对 Xamarin.MAC 应用程序进行公证

android - 合适的 uikit/coredata 兼容性

macos - 碳/ cocoa 悬停在码头事件上

c# - Xamarin Forms 异步播放声音

objective-c - 如何用各种类型的对象填充堆栈

performance - Xamarin Mvvmcross 启动 dll 加载缓慢