我的应用程序项目有一个基本的5个页面视图,每个视图都通过底部的选项卡栏链接,当我从一个页面切换到另一个页面时,这5个页面都会像它们应该的那样在页面上显示选项卡栏,并且工作得很好。
这5个(制表符)页面中有两个起到索引的作用,我有转到二级页面的按钮链接。当我编写转到二级页面的按钮时,链接工作得很好,但是那些页面底部的选项卡栏已经不在了。每个二级页面都有一个返回按钮,可以返回到它们所链接的索引页,但我链接时所在的选项卡栏现在也消失了。
作为一个实验,为了排除按钮单击后缺少的选项卡栏中的二级页面的问题,我链接了其中一个选项卡,以直接转到二级页面,这个实验效果很好。
下面是我用来链接出站按钮的代码:在类页面tabIndex.h中:
//I declared this method after the last "}"
-(IBAction)switchView:(id)sender; 在类页面tabIndex.m中:
-(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
发布于 2011-08-02 06:20:20
听起来你最好结合使用导航控制器和标签栏控制器。将导航控制器与选项卡栏控制器一起使用,将允许您为每个选项卡呈现分层组织的多个视图,同时保持选项卡栏始终可见。
当您想要转到给定控制器的辅助页面时,可以使用-pushViewController:animated:将新的控制器推送到导航堆栈上;要返回到第一个控制器,只需简单地使用-popViewControllerAnimated:。每个选项卡都有一个导航视图控制器,可以有多个视图,主视图的视图控制器作为导航控制器的根视图控制器。
有关using a nav controller with a tab bar controller的完整详细信息,请参阅视图控制器编程指南。
发布于 2011-08-02 06:52:55
听起来你有5个视图控制器,5个视图控制器中有2个需要使用导航控制器。对于那些vc,您仍然希望看到选项卡栏,但需要能够推送和弹出额外的视图。这很简单。下面是如何设置tab car控制器的方法--假设前两个视图控制器是您需要将其他视图推送到的控制器:
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];
https://stackoverflow.com/questions/6905128
复制相似问题