Я пытаюсь представить контроллер представления в службе зависимостей Forms. Но я продолжаю получать черный экран. Я могу заставить его работать, когда я использую Swift в Xcode, но не использую Xamarin.Вид не загружается из Storyboard на вызов InstantiateViewController()
Контроллеры не загружаются. Странная вещь - это изменения в vc.View
. Это похоже на создание пустого представления, а не на самом деле загрузка с раскадровки.
Мой код выглядит следующим образом:
var storyboard = UIStoryboard.FromName("StoryboardView", null);
var controller = storyboard.InstantiateViewController("StoryboardViewVC");
var window = UIApplication.SharedApplication.KeyWindow;
var vc = window.RootViewController;
while (vc.PresentedViewController != null)
{
vc = vc.PresentedViewController;
}
vc.PresentViewController(controller, true, null);
Добавление вызова LoadViewIfNeeded()
не решает проблему.
Я проверил, что имена раскадровки и контроллера совпадают, что они и делают. Я искал ответы, но все, что я нахожу, вращается вокруг, не записывая код, чтобы загрузить контроллер из раскадровки или наконечника.
Вы хотите, чтобы «StoryboardViewVC» был вашим RootViewController? Если это так: window.RootViewController = контроллер. В противном случае, Какова цель цикла while? Мне кажется, что это беспокоит меня. Вы пытались удалить это? – xleon
@xleon Нет, я хочу представить диспетчер представлений по модулю. Для этого требуется наличие контроллера. Поскольку это вызвано из Xamarin.Forms через службу зависимостей и Forms, насколько мне известно, не подвергает VC, что использует страница, я должен немного разобраться с моими руками и найти наиболее подходящий VC, следовательно, цикл while. Тем не менее, это не объясняет, почему «контроллер», похоже, не загружается из раскадровки еще до его представления. – BergQuester