1

我想向 uiviewcontroller 添加一个标签栏,如下图所示:

在此处输入图像描述

顶部(2labels 和 UIScrollView )是固定的,当用户更改标签栏项目时,只有底部会更改。我将标签栏控制器从 xcode 中的对象添加到我的 uiviewcontroller,但我不知道如何创建标签栏控制器的视图,如何更改页面的一部分。

编辑:我为此使用此代码:

        UIViewController viewController1, viewController2;
        if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Phone) {
            viewController1 = new FirstViewController ("FirstViewController_iPhone", null);
            viewController2 = new SecondViewController ("SecondViewController_iPhone", null);
        } else {
            viewController1 = new FirstViewController ("FirstViewController_iPad", null);
            viewController2 = new SecondViewController ("SecondViewController_iPad", null);
        }
        UITabBarController tabBarController= new UITabBarController ();
        tabBarController.ViewControllers = new UIViewController [] {
            viewController1,
            viewController2,
        };

        UIView v= tabBarController .View ;
        v.Frame = new Rectangle (0,150,320,260);
        UITabBar tb= tabBarController .TabBar;
        tb.Frame = new RectangleF (0,410,320,50);
        this.View .AddSubview (v  );
        this .View .AddSubview (tb);

但它不工作。标签栏视图填充了所有视图,当我单击 uitabbar 的按钮时,我得到异常并强制关闭应用程序。

4

1 回答 1

1

您可能不需要标签栏来重现此行为。

  1. 在你的“地方应该改变......”中,只需设置一个普通的 UIView,我们将称之为容器。

  2. 在视图控制器的 viewDidLoad 中,创建三个视图并将它们保存在内存中,我们称它们为 detailView、mapView、agentView。

然后,在底部,您只需添加 3 个 UIButton。在每个按钮按下操作(TouchUpInside)上,您将相关视图添加为容器子视图(即 agentButton.TouchUpInside += () => container.AddSubView(detailsView); * 不要忘记删除前一个。

编辑 :

this.View .AddSubview (tabBarController.View);
tabBarController.View.Frame = new RectangleF(....);

我已经在一个示例项目中尝试过它并且它有效

于 2013-03-06T15:22:03.410 回答