Я работаю с iOS Designer, и у меня есть раскадровка с различными видами на ней (навигационный контроллер, ...). Почти у каждого вида есть красный восклицательный знак с правой стороны внизу. Я получаю сообщение об ошибке, какЗначение восклицательного знака в iOS Designer на Xamarin Studio
System.NullReferenceException
ссылки объект не указывает на экземпляр объекта
Если я иду к соответствующему строке кода:
public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations()
{
return TopViewController.GetSupportedInterfaceOrientations();
}
Это часть моего CustomNavigationController
. Если я задаю имя класса в iOS Designer, я получу ошибку. Что я должен добавить здесь? Конструктор выглядит следующим образом:
public CustomNavigationController (IntPtr handle) : base (handle)
{
}
Должен ли я создать его в AppDelegate?
На другом контроллере представления я получаю подобное исключение (с другой стек), и он указывает мне на этой линии:
this.NavigationController.NavigationBar.TintColor = UIColor.FromRGB (21, 66, 139);
приложение, кажется, отлично работает на тренажере и на устройстве, хотя.
Как решить эту проблему?
EDIT:
теперь я удалил код в мой контроллер зрения:
this.NavigationController.NavigationBar.TintColor = UIColor.FromRGB (21, 66, 139);
В качестве замены я переехал этот код в приложение делегата FinishedLaunching()
:
UINavigationBar.Appearance.TintColor = UIColor.FromRGB (21, 66, 139);
Результат что теперь у меня нет восклицательного знака для этого контроллера вида, и цвет по желанию. Но предварительный просмотр в iOS Designer больше не показывает мне правильный цвет.
Если я прокомментировал GetSupportedInterfaceOrientations()
в своем CustomNavigationController
, то другой восклицательный знак был удален. Я думал, что мне нужна эта функция для определения ориентации каждого контроллера вида. Быстрый взгляд показал, что он работает.
Спасибо за информацию, я не знаю, что. Поэтому я должен добавить ориентацию по умолчанию в режиме разработки? Это также справедливо для доступа к 'this.NavigationController'? Я не знаю, почему я не могу получить доступ к контроллеру навигации. В iOS Designer в этом представлении отсутствует панель навигации. – testing
Теперь я попытался использовать этот подход, но я все еще получаю 'System.NullReferenceException' в iOS Designer ...Вот код 'if (Site! = Null && Site.DesignMode) { return UIInterfaceOrientationMask.Portrait; } else { return TopViewController.GetSupportedInterfaceOrientations(); } ' – testing
Я снова попробовал его со строкой. Я получаю 'UIViewControllerHierarchyInconsistency'. Такой подход не работает. – testing