按标签栏和按钮导航屏幕

时间:2012-06-22 18:13:44

标签: ios xcode ios4 uitabbar uitabbaritem

我有以下问题:

在我的应用程序中,有两种方法可以导航到其他屏幕:按钮或标签栏。

所有屏幕都有标签栏,可以调用其他屏幕,但主屏幕是有按钮但没有标签栏的主屏幕。

当我开始开发我的应用程序时,我选择了标签栏应用程序模板,如果我通过按下标签调用屏幕,它可以正常工作。当我使用主屏幕时,问题就出现了:

  • 我需要在此特定屏幕中“隐藏”标签栏。
  • 在主屏幕中,如果我通过按钮调用新屏幕,则标签栏会在新屏幕中消失(因为屏幕是通过按钮调用而不是通过标签栏调用)。

要解决此问题,我想也许我可以创建一个自定义标签栏(我还不知道如何)并在我的屏幕上像UIControl一样调用它,所以这样我需要更改标签栏修改将能够在调用该控件的所有屏幕上进行。

你推荐什么?创建一个自定义标签栏并像UIControl一样使用它是个好主意?如果是的话,我该如何创建一个?

我用它来调用windows

RecurringGiftListViewController *listViewController = [[RecurringGiftListViewController alloc] initWithNibName:@"RecurringGiftListViewController" bundle:nil];
listViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
[self presentModalViewController:listViewController animated:YES]; 
[listViewController release];

2 个答案:

答案 0 :(得分:1)

听起来你根本不应该使用tabbar。按下其中一个按钮时,标签栏不应消失。把它想象成你的应用程序的主菜单。您可以拥有其他屏幕,例如导航控制器或接管整个屏幕的模态对话框,但您应该可以退回到标签栏。

再次考虑用户界面的结构。也许您可以重新安排它,使您的“主屏幕”可以从其中一个标签页中找到对话框?

答案 1 :(得分:1)

您的问题是您将其他观点视为“模态”。用以下代码替换您的代码:

RecurringGiftListViewController *listViewController = [[RecurringGiftListViewController alloc] initWithNibName:@"RecurringGiftListViewController" bundle:nil];            
//listViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self.navigationController pushViewController:listViewController animated:YES]; 
[listViewController release];

希望这会有所帮助