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. 「place should change...」では、単純な UIView を設定するだけで、それをコンテナーと呼びます。

  2. ビュー コントローラの viewDidLoad で、3 つのビューを作成し、それらをメモリに保持します。それらを 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 に答える