1

我在 IB (Storyboard) 中定义了一个弹出框 segue 来打开一个嵌入在 UINavigationViewController 中的 UITableViewController。我需要这个在弹出窗口中导航。
此外,我添加了两个顶部栏按钮(保存、取消)。单击任一后,我想关闭/关闭弹出窗口。

我尝试了不同的东西,但没有任何效果。

  • 调用DismissViewController(true, null); 没有效果
  • 调用 RemoveFromParentViewController 会关闭我的应用程序(或者只是崩溃了?)

我已经阅读了有关 DismissPopoverController 的信息,但这在我的场景中不可用,因为在 UINavigationViewController 中使用嵌入式 UITableViewController 来处理原型表。

有什么建议么?

4

1 回答 1

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...
    }

在我的弹出窗口中(嵌入在 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);
    }

不要犹豫,问是否有任何不确定。

于 2013-06-21T07:28:31.650 回答