Xamarin. iOS: черный экран после экрана запуска, когда нет раскадровки - PullRequest
0 голосов
/ 12 января 2020

Я не хочу использовать раскадровку с моим приложением Xamarin. iOS, поэтому я сделал следующее:

1 - удалил файлы раскадровки.

2 - обновил plist Файл .info Приложение> Основной интерфейс не имеет значения.

3- Добавлен следующий код в файл AppDelegate.

[Export ("application:didFinishLaunchingWithOptions:")]
public bool FinishedLaunching (UIApplication application, NSDictionary launchOptions)
{
    // create a new window instance based on the screen size
    Window = new UIWindow(UIScreen.MainScreen.Bounds);

    var controller = new UIViewController();
    controller.View.BackgroundColor = UIColor.LightGray;
    controller.Title = "My Controller";

    var navController = new UINavigationController(controller);

    Window.RootViewController = navController;

    // make the window visible
    Window.MakeKeyAndVisible();

    return true;
}

Но после этого я получил черный экран симулятор после запуска экрана запуска. Это происходит даже с совершенно новыми проектами. Я загрузил пример нового проекта с этими шагами и выдаю здесь .

Я использую Visual Studio 2019 - Xamarion. iOS 11.8.3 - XCode 11.3.

В недавнем прошлом я использовал Visual Studio 2015 без проблем, и я думаю , что эта проблема произошла только с Visual Studio 2019. К сожалению, в настоящее время у меня нет Visual Studio 2015, чтобы экспериментировать с.

1 Ответ

4 голосов
/ 13 января 2020

Начните с iOS 13, SceneDelegate отвечает за настройку сцен вашего приложения, переместите ваши коды с AppDelegate на SceneDelegate:

[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).

    UIWindowScene myScene = scene as UIWindowScene;
    Window = new UIWindow(myScene);

    UIViewController controller = new UIViewController();
    controller.View.BackgroundColor = UIColor.LightGray;
    controller.Title = "My Controller";

    UINavigationController navigationMain = new UINavigationController(controller);
    Window.RootViewController = navigationMain;
    Window.MakeKeyAndVisible();
}

См .: Установить rootViewController iOS 13 и Делегат сцены в Xcode 11 И iOS 13

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...