2011-11-18 34 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」'。 –

相關問題