0

我有一个 UITableViewController,我目前正在使用它来显示 UITableView。我需要向此控制器添加功能,以便可以进行以下操作:

  • 默认情况下,UITableView 显示在控制器的主要内容中。
  • UISegmentedControl 出现在顶部导航栏下方。此控件包含两个选项。
  • 在 UISegmentedControl 中选择第二个选项时,UIWebView 将显示在控制器的主要内容中。显示 UIWebView 时, UISegmentedControl 仍然可见。
  • 在 UISegmentedControl 中选择第一个选项时,UITableView 将再次显示。

目前我已经尝试使用以下代码实现这一点:

    this.TableView.TableHeaderView = MakeHeaderControl ();

    public UIToolbar MakeHeaderControl ()
    {
        try {
            var toolBar = new UIToolbar (new RectangleF (0, 0, TableView.Bounds.Size.Width, 41));
            toolBar.Items = null;

            var seg = new UISegmentedControl (new RectangleF (5, 4, TableView.Bounds.Size.Width - 10, 33));

            seg.InsertSegment ("First", 0, false);
            seg.InsertSegment ("Second", 1, false);

            seg.ControlStyle = UISegmentedControlStyle.Bar;
            seg.SelectedSegment = 0;

            seg.ValueChanged += (sender, e) => {
                var web = new UIWebView (this.View.Frame);
                this.View = web;
                var req = new NSUrlRequest (new NSUrl ("URL"));
                web.LoadRequest (req);
            };
            toolBar.Add (seg);
            return toolBar;
    }

我使用此代码面临的问题是:

  1. UISegmentedControl 与 UITableView 一起滚动。
  2. 显示 UIWebView 时 UISegmentedControl 不可见。

如何在没有上述两个问题的情况下实现此功能?

4

0 回答 0