我有一些問題:
1)當你說「創建了自己的UITabBarController」你的意思是,你的子類的UITabBarController?
2)如何調用模態視圖控制器?有沒有一個按鈕或某個被點擊的東西來打電話來呈現模態視圖控制器?
你說控制器「在主窗口上」,並且當你顯示模態視圖時,你將「標籤欄控制器視圖置於前面」。這讓我困惑。視圖控制器應該屬於標籤欄控制器。
我創建了一個小項目,把它爲我工作,所以這裏就是我所做的:
1)我創建的UITabBarController的子類:
@interface MyTabBarController : UITabBarController
{
}
- (IBAction)presentModalView:(id)sender;
- (void)dismissModalview;
@end
@implementation MyTabBarController
- (IBAction)presentModalView:(id)sender
{
MyModalViewController* myModalView = [[MyModalViewController alloc] initWithNibName:@"ModalView" bundle:nil];
[myModalView setTbc:self];
[self presentModalViewController:myModalView animated:YES];
}
- (void)dismissModalview;
{
[self dismissModalViewControllerAnimated:YES];
}
@end
2)然後我的模態視圖控制器我創建的UIViewController的一個子類:
@interface MyModalViewController : UIViewController
{
MyTabBarController* tbc;
}
@property (retain) MyTabBarController* tbc;
- (IBAction)returnToTabBar:(id)sender;
@end
@implementation MyModalViewController
@synthesize tbc;
- (IBAction)returnToTabBar:(id)sender;
{
[tbc dismissModalview];
}
@end
3)I拖動標籤欄控制器插入的MainWindow.xib,設置它的文件的所有者到MyTabBarController,並加入視圖控制器到兩個選項卡(我使用檢查器將每個背景顏色設置爲不同的顏色)。在第二個選項卡的視圖控制器中,我添加了一個按鈕並將其目標設置爲MyTabBarController中的「presentModalView:」動作。
4)我創建了一個新的xib,其中包含一個名爲ModalView的視圖並將其文件所有者設置爲MyModalViewController。我將視圖的背景顏色設置爲與上述兩種不同的顏色,並在視圖中添加了一個按鈕。我將按鈕的目標設置爲MyModalviewController中的動作「returnToTabBar:」。
顯然,我必須在應用程序委託中將標籤欄視圖添加到窗口的子視圖中。這爲我工作,並提出了模態視圖控制器時,我是第二個選項卡上,當我被解僱是我返回到標籤欄控制器中的第二個選項卡。
我希望這有助於!
所以...回答你的問題:1.不是它是UIViewController的子類和2:是它是一個視圖上的按鈕 我所做的是將我的customUITabBarController放在主窗口上,由customUITabBarController)視圖控制器...在我的customUITabBarController的視圖,我有UITabBar。希望它很清楚!我不知道如何更好地解釋 – ncohen 2010-04-28 09:52:16