标签栏隐藏iDev自定义标签栏模态窗口。我怎么能改变这个?

时间:2011-11-18 08:10:10

标签: iphone ios

我一直在尝试根据以下iDev教程/源代码实现的一个视图呈现模态视图。自定义选项卡栏通过将它们作为子视图插入tabBar来管理视图,因此当我调用要从子视图显示的模态视图时,它会被标签栏底部覆盖。我已将以下代码切换到标签栏子视图上方,该视图允许显示整个屏幕但仍会产生动画问题。

 // Set the view controller's frame to account for the tab bar
viewController.view.frame = CGRectMake(0,0,self.view.bounds.size.width, self.view.bounds.size.height-(tabBarGradient.size.height));

// Set the tag so we can find it later
viewController.view.tag = SELECTED_VIEW_CONTROLLER_TAG;

// Add the new view controller's view
[self.view insertSubview:viewController.view aboveSubview:tabBar];

http://idevrecipes.com/2011/01/04/how-does-the-twitter-iphone-app-implement-a-custom-tab-bar/

请帮助这让我疯了!

1 个答案:

答案 0 :(得分:2)

所以,我认为你正在从子视图中呈现模态视图,如下所示:

[self presentModalViewController:someController animated:YES];

如果是这样,您的控制器将呈现当前视图(自我),如果位于其他视图下方的当前视图 - 模态控制器也将显示在它们下面。 您应该获得对主父视图的引用,因此您可以在那里调用presentModalViewController。

在包含许多子视图的大型项目中,引用主视图很方便,我这样做了:

在MyAppDelegate @interface中我有:

{
UINavigationController *navController;
}
+ (UINavigationController *) navController;
@property (nonatomic, retain) IBOutlet UINavigationController *navController;

在实施中:

// Used for showing modal windows over tabbar
static UINavigationController * _rootController = nil;

+ (UINavigationController *) navController {
    return _rootController;
}

@synthesize navController;
在didFinishLaunchingWithOptions中:

_rootController = navController;

(在本例中我的顶视图 - 导航控制器)

因此我可以致电申请的任何地方:

[[MyAppDelegate navController] presentModalViewController:someController animated:YES];