我有一个 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;
}
我使用此代码面临的问题是:
- UISegmentedControl 与 UITableView 一起滚动。
- 显示 UIWebView 时 UISegmentedControl 不可见。
如何在没有上述两个问题的情况下实现此功能?