首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Xcode4中,如何在使用按钮切换视图时保留底部选项卡栏

在Xcode4中,如何在使用按钮切换视图时保留底部选项卡栏
EN

Stack Overflow用户
提问于 2011-08-02 06:12:13
回答 2查看 2.2K关注 0票数 0

我的应用程序项目有一个基本的5个页面视图,每个视图都通过底部的选项卡栏链接,当我从一个页面切换到另一个页面时,这5个页面都会像它们应该的那样在页面上显示选项卡栏,并且工作得很好。

这5个(制表符)页面中有两个起到索引的作用,我有转到二级页面的按钮链接。当我编写转到二级页面的按钮时,链接工作得很好,但是那些页面底部的选项卡栏已经不在了。每个二级页面都有一个返回按钮,可以返回到它们所链接的索引页,但我链接时所在的选项卡栏现在也消失了。

作为一个实验,为了排除按钮单击后缺少的选项卡栏中的二级页面的问题,我链接了其中一个选项卡,以直接转到二级页面,这个实验效果很好。

下面是我用来链接出站按钮的代码:在类页面tabIndex.h中:

代码语言:javascript
复制
    //I declared this method after the last "}"      
    -(IBAction)switchView:(id)sender; 

在类页面tabIndex.m中:

代码语言:javascript
复制
    -(IBAction)switchView:(id)sender {
MyNewPageViewController *newPagelink = [[MyNewPageViewController alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:newPageLink animated:YES];

[newPagelink release];}

然后,我颠倒了名称,并在后退按钮的MyNewPageViewController的.h和.m文件中执行了相同的操作,并将返回的IBAction称为"switchBack“。

我希望有人能帮我解决这个问题...

非常感谢,

--Rob

EN

回答 2

Stack Overflow用户

发布于 2011-08-02 06:20:20

听起来你最好结合使用导航控制器和标签栏控制器。将导航控制器与选项卡栏控制器一起使用,将允许您为每个选项卡呈现分层组织的多个视图,同时保持选项卡栏始终可见。

当您想要转到给定控制器的辅助页面时,可以使用-pushViewController:animated:将新的控制器推送到导航堆栈上;要返回到第一个控制器,只需简单地使用-popViewControllerAnimated:。每个选项卡都有一个导航视图控制器,可以有多个视图,主视图的视图控制器作为导航控制器的根视图控制器。

有关using a nav controller with a tab bar controller的完整详细信息,请参阅视图控制器编程指南。

票数 0
EN

Stack Overflow用户

发布于 2011-08-02 06:52:55

听起来你有5个视图控制器,5个视图控制器中有2个需要使用导航控制器。对于那些vc,您仍然希望看到选项卡栏,但需要能够推送和弹出额外的视图。这很简单。下面是如何设置tab car控制器的方法--假设前两个视图控制器是您需要将其他视图推送到的控制器:

代码语言:javascript
复制
MyVC1 *vc1= [[MyVC1 alloc] initWithNibName:@"MyVC1View" bundle:nil];
MyVC2 *vc2= [[MyVC1 alloc] initWithNibName:@"MyVC2View" bundle:nil];
MyVC3 *vc3= [[MyVC1 alloc] initWithNibName:@"MyVC3View" bundle:nil];
MyVC4 *vc4= [[MyVC1 alloc] initWithNibName:@"MyVC4View" bundle:nil];
MyVC5 *vc5= [[MyVC1 alloc] initWithNibName:@"MyVC5View" bundle:nil];

// these are the VCs you need to push/pop from
UINavigationController *firstNavController = [[UINavigationController alloc] initWithRootViewController:vc1];
UINavigationController *secondNavController = [[UINavigationController alloc] initWithRootViewController:vc2];

UITabBarController *tabBar = [[UITabBarController alloc] initWithNibName:nil bundle:nil];
tabBar.viewControllers = [NSArray arrayWithObjects:firstNavController, secondNavController, vc3, vc4, vc5, nil];

现在,使用vc1和vc2,您可以像往常一样将视图推送到导航堆栈上,例如[self.navigationController pushViewController:vc1B animated:YES];

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

https://stackoverflow.com/questions/6905128

复制
相关文章

相似问题

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