我在导航栏中有一个带有UISegmentedControl的UINavigationViewController。当用户推动分段控件时,我希望实现对不同ViewControllers的简单切换。
我已经尝试了很多但没有任何作用......考虑来源:
整个项目基于故事板!任何针对NIB的解决方案都没用。
将ContainerControl添加到我的UINavigationViewController。但在这种情况下,我只能嵌入一个控制器。以编程方式创建嵌入式搜索是不可能的。在IB中设计的代码中更实例化UITableViewController会导致空视图。因为我要将myTableViewController(IntPtr句柄)中的c'tor更改为:base(句柄)为空构造函数。
有人可以发布一个工作示例,了解如何使用UISegmentedControl在不同的ViewControllers之间切换?我非常感谢你的帮助。
答案 0 :(得分:2)
工作解决方案:
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
CreateAndEmbed (TrDetailNavType.Info);
}
partial void segmentNavigationValueChanged (MonoTouch.UIKit.UISegmentedControl sender, MonoTouch.UIKit.UIEvent e)
{
CreateAndEmbed((TrDetailNavType)sender.SelectedSegment);
}
private void CreateAndEmbed(TrDetailNavType tab)
{
if (_currentViewController != null)
{
_currentViewController.View.RemoveFromSuperview ();
_currentViewController.RemoveFromParentViewController();
}
string id;
switch (tab)
{
case TrDetailNavType.Info:
id = "TagesRapportDetailInfoTableViewController";
break;
case TrDetailNavType.Lohn:
case TrDetailNavType.Material:
case TrDetailNavType.Inventar:
case TrDetailNavType.Fremdleistung:
case TrDetailNavType.Regie:
id = "TagesRapportDetailDummyViewController";
break;
}
_currentViewController = (UIViewController)Storyboard.InstantiateViewController (id);
_currentViewController.View.Frame = containerDetail.Bounds;
AddChildViewController (_currentViewController);
_currentViewController.DidMoveToParentViewController (this);
containerDetail.AddSubview (_currentViewController.View);
}