Objective c 选项卡栏控制器显示不正确
我正在尝试将选项卡栏控制器连接到我的应用程序的现有部分,但当我这样做时,它“出现故障” 但是,当我作为初始视图控制器运行Tab Bar Controller part standalone时,它可以正常工作,如下图所示: 这是应用程序运行时的外观(正确行为): 但是,当我从主应用程序转到此选项卡栏控制器时,它是这样的: 我的主应用程序如下所示: 滚动视图包含Objective c 选项卡栏控制器显示不正确,objective-c,ios,cocoa-touch,ios5,Objective C,Ios,Cocoa Touch,Ios5,我正在尝试将选项卡栏控制器连接到我的应用程序的现有部分,但当我这样做时,它“出现故障” 但是,当我作为初始视图控制器运行Tab Bar Controller part standalone时,它可以正常工作,如下图所示: 这是应用程序运行时的外观(正确行为): 但是,当我从主应用程序转到此选项卡栏控制器时,它是这样的: 我的主应用程序如下所示: 滚动视图包含 UIView 1 UIView 2 UIView 3 UIView x 每个视图都不包含与此选项卡栏控制器无关的内容。只有一个视
- UIView 1
- UIView 2
- UIView 3
- UIView x
UITabBarController *newViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"test"];
[self.view addSubview:newViewController.view];
编辑:
整个应用程序:
我正在以编程方式创建视图。这就是为什么我与选项卡栏控制器没有任何关系/分段
解决方案:
更改:
UITabBarController *newViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"test"];
[self.view addSubview:newViewController.view];
致:
您需要将根viewController设置为导航控制器只需不要执行此操作。从苹果参考 由于UITabBarController类继承自UIViewController类,因此选项卡栏控制器有自己的视图,可以通过view属性访问。部署选项卡栏界面时,必须将此视图安装为窗口的根目录。与其他视图控制器不同,选项卡栏界面不应作为其他视图控制器的子级安装 据我所知,这意味着您必须仅将UITabBarController用作窗口的根视图控制器。但您可以始终使用通用UIViewController并在其中添加UIAbbar
(您遇到的视图偏移问题可能会得到解决,但它不会遵循苹果的指导原则,也不会被建议)。我只想从我的多个视图中的一个指向导航控制器,我仍然想从我的应用程序开始(根视图控制器,当前从那里开始)。也许我没法解释你的答案,你能给我一个更详细的答案吗?谢谢你在TabbarViewControllert中将函数“Addsubview”改为“Addchildviewcontroller”。这是一个有效的观点,你会建议我怎么做。我希望这个选项卡栏控制器用于我的应用程序中的选项,我需要将它们安排在某种选项卡中,这样用户就不会被信息淹没。您将如何实现这一点,+1对于回答,我建议在设置视图中使用UISegmentedControl,它应该符合苹果的指导原则,并且应该完全符合用户体验(例如,请参见设置应用程序中的Wi-Fi网络详细信息视图)。如果您真的想在导航层次结构中使用一个Tabar,并且它必须与Tabar相关联,而没有其他东西,请准备好被拒绝的应用程序(我不是说它会,但它可能是)。如果您需要UISegmentedControl或UITabBar而不是UITabBarController的任何教程,您可以尝试在谷歌上搜索详细信息,有很多教程都可以为您提供。
UITabBarController *newViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"test"];
[self addChildViewController:newViewController];
[self.view addSubview:newViewController.view];