UISegmentedControl在MonoTouch中切换UITableView和UIWebView?

时间:2013-07-20 04:52:23

标签: uiwebview xamarin.ios uitableview

我有一个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不可见。
  3. 如果没有上述两个问题,我该如何实现此功能?

0 个答案:

没有答案