2011-11-18 57 views
1

我一直在尝试从我的一个视图中呈现模态视图,我遵循以下iDev教程/源代码实现。自定义选项卡栏通过将它们作为子视图插入tabBar下来管理视图,因此当我调用要在子视图中显示的模式视图时,它将在标签栏的底部进行隐藏。我已将以下代码切换到标签栏子视图的上方,该视图允许显示整个屏幕,但仍会产生动画问题。iDev自定义选项卡栏模式窗口被选项卡栏隐藏。我该如何改变这一点?

// 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/

请帮助这是推动我疯了!

回答

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]; 
+0

我已经把想实现这一点,但似乎无法推测出来。您是否在要实现它的任何位置的标题中调用@class MyAppDelegate? – morcutt

+0

我想要实现的任何地方我正在添加'#import“MyAppDelegate.h”'。 –

相关问题