我在IB(Storyboard)中定义了一个popover segue来打开一个嵌入在UINavigationViewController中的UITableViewController。我需要这个在popover中导航。
另外我添加了两个顶部栏按钮(保存,取消)。点击任何一个后,我想解散/关闭弹出窗口。
我尝试了不同的东西,但没有任何作用。
我已经阅读了DismissPopoverController但由于在UINavigationViewController中使用嵌入式UITableViewController来处理原型表,因此在我的场景中不可用。
有什么建议吗?
答案 0 :(得分:1)
经过一番尝试和错误后,我得到了解决方案......我希望其他人能从我的解决方案中获得一些好处;)
在我的基本视图中:
public override void PrepareForSegue (UIStoryboardSegue segue, NSObject sender)
{
if (segue.Identifier == "MySegueIdentifier")
{
var popoverSegue = segue as UIStoryboardPopoverSegue;
_myTableViewController = segue.DestinationViewController.ChildViewControllers[0] as MyTableViewController;
_myTableViewController.PopoverController = popoverSegue.PopoverController;
_myTableViewController.CloseCallback = AddNewTrAndRefreshCallback;
}
base.PrepareForSegue (segue, sender);
}
private void AddNewTrAndRefreshCallback()
{
if (myTableViewController == null || _myTableViewController.Cancled)
return;
var selectedRecord = _myTableViewController.SelectedRecord;
// Do whatever you want...
}
在我的popover(UINavigationViewController中嵌入的UITableViewController)
partial void buttonCancelClicked (MonoTouch.UIKit.UIBarButtonItem sender)
{
Cancled = true;
CloseCallback();
PopoverController.Dismiss(true);
}
partial void buttonDoneClicked (MonoTouch.UIKit.UIBarButtonItem sender)
{
Cancled = false;
SelectedRecord = _tableViewSource.SelectedRecord;
CloseCallback();
PopoverController.Dismiss(true);
}
不要犹豫,询问是否有任何不确定因素。