我正在使用基于视图的简单iPhone应用程序。 从应用程序的主屏幕,您可以导航到4个不同的视图。 其中一个视图由一个标签栏组成。 因为这不是常规方法,所以我在没有UITabController的情况下使用了解决方法。
为此,我使用了这个主题: https://discussions.apple.com/thread/2099944?start=0&tstart=0
这个示例代码: http://pymbian.svn.sourceforge.net/svnroot/pymbian/stuff/testtab_raynewbie/Classes/
通过一些小的修改,这是有效的。 当我想从标签视图返回主视图时,我只有最后一个错误,标签栏停留在屏幕的底部。
我尝试了几种方法。
myTabBar.hidden = YES
hidesBottomBarWhenPushed = YES
但似乎没有工作...... 我认为问题是在视图UI控制器的奇怪结构中的某个地方。因为现在结构看起来像这样。
MainViewController
- ViewController with TabBar
- tab1viewcontroller
- tab2viewcontroller
- other viewcontrollers
回到主视图是在tab1viewcontroller中完成的,我无法对TabBar做任何事情。在所有其他视图中,我将使用此代码返回:
-(IBAction) BackAction:(id)sender {
mainControllerView = [[MainControllerView alloc] initWithNibName:@"MainControllerView" bundle:nil];
[self.view addSubview:mainControllerView.view];
[mainControllerView.view release];
}
有人有想法吗?
答案 0 :(得分:2)
从上一个视图推送时,您需要隐藏标签栏。
LoginViewController *loginViewObj =[[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
loginViewObj.hidesBottomBarWhenPushed=YES;
LoginViewController
是要在不需要标签栏的位置推送的视图。 :)
答案 1 :(得分:0)
在视图控制器中尝试以下要隐藏标签栏的代码
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:YES];
[self.tabBarController.view setFrame:CGRectMake(0, 0, 320, 560)];
}
和
-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:YES];
[self.tabBarController.view setFrame:CGRectMake(0, 0, 320, 480)];
}