От Сайта Apple Dev:
Для запущения приложения в альбомном режиме так, чтобы строка состояния сразу была в соответствующем положении отредактируйте файл Info.plist для добавления ключа UIInterfaceOrientation с соответствующим значением (UIInterfaceOrientationLandscapeRight или UIInterfaceOrientationLandscapeLeft), как показано в Списке 2 Списков 2.
: Запущение Вашего приложения в альбомном режиме
<key>UIInterfaceOrientation</key> <string>UIInterfaceOrientationLandscapeRight</string>
Вероятно, вы захотите использовать здесь универсальные шаблоны:
public interface IViewBase { }
public interface IPresenterBase<T> where T : IViewBase
{
T View { get; set; }
}
затем:
public interface ILogPresenter : IPresenterBase<ILogView> { }
public interface ILogView : IViewBase{ }
Помимо ковариантных возвращаемых типов, которые не поддерживаются в C # (что может вызвать проблемы даже только с геттером), у вас есть фундаментальная проблема в оригинале. Я мог бы сделать:
IPresenterBase foo = new LogPresenterImpl();
foo.View = new SomeOtherView();
где SomeOtherView
реализовал IVewBase
, но не ILogView
. Как вы ожидаете, что ваша собственность справится с этим?
Общая версия, приведенная выше, решает эту проблему, позволяя докладчику выражать, какой вид он представляет.
Вы можете сделать это с помощью дженериков:
public interface IViewBase { }
public interface IPresenterBase<T> where T : IViewBase
{
T View { get; set; }
}
public interface ILogPresenter : IPresenterBase<ILogView> { }
public interface ILogView : IViewBase { }
public class LogPresenter : ILogPresenter
{
public ILogView View { get; set; }
}