【发布时间】:2016-04-22 11:08:56
【问题描述】:
我在我的应用主页上使用了 UIview 控制器,然后像 Facebook 一样在底部添加了一个标签栏,然后又添加了 3 个标签栏项目,当我将标签栏项目拖动到视图控制器,是否可以编程方式或在情节提要中?
【问题讨论】:
-
我试图拖动我的标签栏项目来执行我的另一个视图控制器的 segue,但它不允许我
标签: ios objective-c xcode storyboard
我在我的应用主页上使用了 UIview 控制器,然后像 Facebook 一样在底部添加了一个标签栏,然后又添加了 3 个标签栏项目,当我将标签栏项目拖动到视图控制器,是否可以编程方式或在情节提要中?
【问题讨论】:
标签: ios objective-c xcode storyboard
我遇到了同样的问题,但是我找不到一种方法来为 viewController 分配它自己的 viewController,就像在 TabViewController 的情况下一样。
我使用容器解决了这个问题。 tabBar 中的每个 tabBarItem 一个容器,根据 tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item 方法中选择的 tabBarItem 隐藏或显示。
1. 在 StoryBoard 中的 UIviewController 中创建容器:就像这样选择您的 tabBar 和 Ctrl+Drag 来委托类以监听 tabBarDelegate 方法:看这里
2. 声明相应的 IBOutlets,包括您的 tabBAr:
#import <UIKit/UIKit.h>
@interface TabsMainViewController : UIViewController
@property (strong, nonatomic) IBOutlet UITabBar *tabBar;
@property (strong, nonatomic) IBOutlet UIView *directoryContainer;
@property (strong, nonatomic) IBOutlet UIView *groupsContainer;
@end
3. 选择要在 tabBarDelegate 方法中显示的容器:
-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
switch (item.tag) {
case 1:
_directoryContainer.hidden = NO;
_groupsContainer.hidden = YES;
break;
case 2:
_directoryContainer.hidden = YES;
_groupsContainer.hidden = NO;
break;
default:
break;
}
}
希望有帮助!
【讨论】:
简单:您需要一个 UITabViewController,标签栏项目不能按照您要求的方式使用。
Ctrl+从你的 tabview 控制器拖动到你想要包含的视图(在这种情况下是第三个)
然后选择view controllers 选项来添加关系segue。
【讨论】: