如何将tabbar控制器作为子视图添加到父视图?

时间:2015-04-29 07:47:58

标签: ios objective-c iphone uitabbarcontroller

- (void)viewDidLoad 
{
    [super viewDidLoad];

    UITabBarController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"tabbar"];
    [self addChildViewController:controller];
    controller.view.frame = CGRectMake(0,0, 500, 500);
    [self.view addSubview:controller.view];
    [controller didMoveToParentViewController:self];
}

如何将tabbar viewcontroller作为子视图添加到objective-C中的uiviewcontroller?

3 个答案:

答案 0 :(得分:0)

如前所述,您已经在此处[self.view addSubview:controller.view]

tabbar控制器视图的自动调整大小假定其超级视图的完整大小。

如果在实例化标签栏控制器时设置框架,请务必更改标签栏视图的autoresizingMask属性,以使其没有灵活的宽度或灵活的右边距。< / p>

答案 1 :(得分:0)

您已将UITabBarController *controller的框架创建为 -

controller.view.frame = CGRectMake(500,500, 500, 500);

x and y origin is 500,看起来添加了标签栏控制器,但它的原点位于屏幕的可见帧之外。

答案 2 :(得分:0)

if let controller = self.storyboard?.instantiateViewController(withIdentifier: "TabController") as? TabController {
        addChildViewController(controller)
        controller.view.frame = contentView.bounds
        contentView.addSubview(controller.view)
        controller.didMove(toParentViewController: self)
    }

这里'contentView'是位于ViewController中的UIView