首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPad在详细视图中添加tabBar

iPad在详细视图中添加tabBar
EN

Stack Overflow用户
提问于 2012-07-31 22:17:17
回答 1查看 247关注 0票数 0

我想根据用户选择的选项显示3个不同的屏幕

它们是1.类型处方2.手写处方3.处方形式

如何切换这3个视图?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-07 04:05:48

像SplitViewControllers这样的UITabBarControllers只打算作为根视图控制器,因此您不能在另一个视图中嵌套TabBarController,但是您可以在视图中嵌套UITabBar。

我在底部的详细信息视图中添加了Tabbar,在顶部添加了一个导航栏,然后在它们之间添加了一个占位符视图。所有这些都在Interface Builder!中,您将希望在占位符视图上使用自动调整大小来打开所有内容。

接下来,实现UITabBarDelegate,您将需要:

代码语言:javascript
复制
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {

在此基础上,您可以使用item.tag,如果您在Interface Builder中为每个项目提供一个惟一的标记,它将让您知道用户单击了哪个选项卡。我为我的设置了定义值:

代码语言:javascript
复制
#define VIEW_TAB_A 0
#define VIEW_TAB_B 1
#define VIEW_TAB_C 2

然后你就会想要...

代码语言:javascript
复制
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
[self switchToView:item];

}

代码语言:javascript
复制
- (void) switchToView : (UITabBarItem*) item {

    if( currentViewController != nil ) {
        [currentViewController viewWillDisappear:NO];
        [currentViewController.view removeFromSuperview];               
    }

switch(item.tag) {
    case VIEW_TAB_A:
        currentViewController = self.viewA;
        break;
    case SCAN_VIEW_TAB_B:
        currentViewController = self.viewB;
        break;
    case PROMOTIONS_VIEW_TAB_C:
        currentViewController = self.viewC;
        break;
}

UIView *aView = currentViewController.view; 

aView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
aView.frame = placeholderView.frame;

[currentViewController viewWillAppear:NO];

[self.view insertSubview:aView aboveSubview:placeholderView];
if( currentViewController != nil ) {
    [currentViewController viewDidDisappear:NO];
}
[currentViewController viewDidAppear:NO];

}这些是我从一个类似的问题中学到的笔记,下次要更努力地搜索

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11742235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档