Я хочу открыть Popover в коде после того, как произойдет определенное действие (например, нажмите на кнопку).UINavigationBar в UIPopoverController выглядит уродливым, если он создан программно
Следующий код позволил мне открыть Popover с помощью NavigationBar, но он не похож на тот, который я сделал с IB. (Подход IB заключался в внедрении UIViewController в UINavigationController и определении двух кнопок отмены и сохранения). Единственное, что я хочу, это эти две кнопки поверх Popover. Я не использую никаких навигационных функций!
var cell = grid.VisibleCellAtCoordinate(coordinate) as SDataGridTextCell;
var viewController = new UIViewController();
var navBar = new UINavigationBar(new RectangleF(0, 0, viewController.View.Bounds.Width, 50))
{
AutoresizingMask = UIViewAutoresizing.FlexibleWidth,
BarStyle = UIBarStyle.Black,
Translucent = true,
Items = new[]
{
new UINavigationItem("test")
{
LeftBarButtonItem = new UIBarButtonItem(UIBarButtonSystemItem.Cancel, (s, e) => { _popoverController.Dismiss(true); }),
RightBarButtonItem = new UIBarButtonItem(UIBarButtonSystemItem.Save, (s, e) => { _popoverController.Dismiss(true); })
}
}
};
var textField = new UITextField(new RectangleF(0, 50, viewController.View.Bounds.Width, viewController.View.Bounds.Height)) { Placeholder = "Mein Text...", BackgroundColor = UIColor.White };
textField.BecomeFirstResponder();
viewController.View.Add(navBar);
viewController.View.Add(textField);
viewController.View.SubviewAdded(textField);
_popoverController = new UIPopoverController(viewController);
_popoverController.SetPopoverContentSize(new SizeF(250, 200), false);
_popoverController.PresentFromRect(cell.Bounds, cell, UIPopoverArrowDirection.Any, false);
Эти кнопки выглядит это изображение (уродливый):
И это изображение показывает, как это выглядит, когда создается в IB:
Спасибо, я добавил новое решение на основе вашего ответа! Теперь внешний вид такой же, как и в IB. – dannyyy