Причина в том, что обычное окно не может быть присвоено this.Window
. Изменить код следующим образом:
[Export("scene:willConnectToSession:options:")]
public void WillConnect(UIScene scene, UISceneSession session, UISceneConnectionOptions connectionOptions)
{
// Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
// If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
// This delegate does not imply the connecting scene or session are new (see UIApplicationDelegate `GetConfiguration` instead).
//// Decide first screen
UIWindowScene windowScene = new UIWindowScene(session, connectionOptions);
//var window = new UIWindow(windowScene);
this.Window = new UIWindow(windowScene);
var storyboard = UIStoryboard.FromName("Main", null);
var registerController = storyboard.InstantiateViewController("LoginViewController") as LoginViewController;
//this.SetWindow(window);
this.Window.RootViewController = registerController;
this.Window?.MakeKeyAndVisible();
this.Window.MakeKeyWindow();
}
Тогда он может работать.
================================ Обновление ==========================================
Если не работает, найти причину можно двумя способами:
Один из способов - убедиться, что следующий код registerController
не равен нулю.
var registerController = storyboard.InstantiateViewController("LoginViewController") as LoginViewController;
Вам необходимо проверить, совпадают ли идентификатор StoryBoard в StoryBoard с LoginViewController .
Другой способ , вы можете создать класс UIViewController, не входящий в StoryBoard, чтобы проверить его.
this.Window.RootViewController = new NewCreatedViewController();