Я установил статический UITableView
с iOS Designer (IB в мире Objective-C). Но ориентация меняется, несмотря на то, что я хочу ее ограничить.Ограничение ориентации контроллера просмотра при использовании статического UITableView
Я сделал следующее:
В Свойства под моделируемых Метрики я выбрал Портрет в Ориентация. Чем я реализует следующие функции для моего UITableViewController
:
public override bool ShouldAutorotate()
{
return false;
}
public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations()
{
return UIInterfaceOrientationMask.Portrait;
}
public override UIInterfaceOrientation PreferredInterfaceOrientationForPresentation()
{
return UIInterfaceOrientation.Portrait;
}
GetSupportedInterfaceOrientations
называется и я вернусь Портрет но вид по-прежнему вращается. Что мне не хватает?
Edit:
Я использовал подход, описанный в View Orientation. Это работает для моих контроллеров. Статическая UITableViewController
выталкивается таким образом на стеке:
this.PresentViewController (new UINavigationController(myStaticTableViewController), true, null);
Здесь используется стандартная реализация UINavigationController
. Я также попытался это с моим CustomNavigationController
, который реализует
partial class CustomNavigationController : UINavigationController
{
public CustomNavigationController (IntPtr handle) : base (handle)
{
}
public override bool ShouldAutorotate()
{
return TopViewController.ShouldAutorotate();
}
public override UIInterfaceOrientation PreferredInterfaceOrientationForPresentation()
{
return TopViewController.PreferredInterfaceOrientationForPresentation();
}
}
, но я не могу сделать что-то вроде этого
this.PresentViewController (new CustomNavigationController(myStaticTableViewController), true, null);
, потому что он не может преобразовать мой вид таблицы контроллер IntPtr
. Возможно, именно поэтому он не учитывает ориентацию интерфейса. Какие у меня решения?