我想在ios中使用单个视图应用程序创建一个选项卡栏

我想在ios中使用单个视图应用程序创建一个选项卡栏,ios,objective-c,uitabbarcontroller,Ios,Objective C,Uitabbarcontroller,我是iOS开发新手 我想使用单视图应用程序创建一个选项卡栏 所以,我使用带有xib的双视图控制器和应用程序内委托编写这些代码,但应用程序未运行 这里还有一个错误是将“UiViewController”发送到“UiView类型”的指针类型不兼容 -(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item { switch (item.tag) { case 1: if

我是iOS开发新手 我想使用单视图应用程序创建一个选项卡栏 所以,我使用带有xib的双视图控制器和应用程序内委托编写这些代码,但应用程序未运行 这里还有一个错误是将“UiViewController”发送到“UiView类型”的指针类型不兼容

-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
    switch (item.tag)
    {
        case 1:
            if (view1 == nil)
            {
                self.view1=[[FirstViewController alloc]initWithNibName:@"FirstViewController" bundle:nil];
            }
            [self.view insertSubview:view1 aboveSubview:tabbar];
            break;
        case 2:
            if (view2 == nil)
            {
                self.view2=[[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];
            }
            [self.view insertSubview:view2 aboveSubview:tabbar];
            break;
        default:
            break;
    }
}

出现的错误是因为您试图将UIViewController作为子视图添加到视图中。通常,UITabBar用于在视图控制器之间切换,在这种情况下,您可能希望使用segue或显示新的视图控制器。因此,如果您真的想显示“FirstViewController”和“SecondViewController”,则需要切换到这些控制器,而不是将它们添加为子视图。如果您真正想做的是在单个视图中的两个不同子视图之间切换,那么您需要将UIView而不是UIViewController子类化,并在使用FirstViewController和SecondViewController的地方使用这些子类


我想要一个带有单视图应用程序的制作选项卡栏,而不是在选项卡式应用程序中,因此请告诉我任何教程或提示。在提供以下答案之前,我可能会问这个问题:为什么要在单视图应用程序中创建选项卡栏?选项卡栏用于切换视图控制器。抱歉,前面的评论有点仓促。通常,UITABBAR用于在控制器之间切换,但从技术上讲,您可以将其用于其他操作。我编辑了我的答案以反映这一点。