2009-12-03 102 views
0

我在切換iPhone應用程序中的視圖時遇到了問題。 我有「Beginning iPhone 3 Development」(http://books.google.com/books?id=TcP2bgESYfgC&printsec=frontcover&dq=beginning+iphone+3+development#v=onepage&q=beginning%20iphone%203%20development&f=false) - 第6章 - 多視圖應用程序的源代碼。切換視圖

現在我有這個問題,我想創建一個新的視圖,應該通過點擊藍色屏幕上的按鈕「按下我」來切換。但它沒有奏效。

我添加了這些行到IBAction爲,藍色屏幕上的按鈕被按下:

StartViewController *startController = [[StartViewController alloc] initWithNibName:@"StartViewController" bundle:nil]; 
self.startViewController = startController; 

[self.view insertSubview:startController.view atIndex:1]; 
[startController release]; 

但在底部的工具欄將不會消失。但我希望這個工具欄消失。

如果我寫

[self.view insertSubview:startController.view atIndex:0]; 

代替

[self.view insertSubview:startController.view atIndex:1]; 

新的廈門國際銀行的背後是舊人,所以我看到這兩個觀點,舊的和新的。 爲什麼?我不明白。

感謝很多提前&此致添

回答

1

工具欄是在通過SwitchView所以你需要從視圖中隱藏它,如果你想讓它隱藏。您可以爲工具欄創建一個IBOutlet,然後調用setHidden:(BOOL)來隱藏它。您將需要從BlueViewController執行此操作,因此您需要一種方法來訪問您的超級視圖(即SwitchView)。在將新視圖插入到位之前,您還需要通過調用blueViewController上的removeFromSuperView從超級視圖中刪除BlueView。它基本上與SwitchViewController中的開關按鈕相同。

更新: 我看着你的代碼。在BlueViewController.m用這個blueButtonPressed:(ID)發送

StartViewController *start = [[StartViewController alloc] initWithNibName:@"StartViewController" bundle:nil]; 
self.startViewController = start; 
[start release]; 
View_SwitcherAppDelegate *appDelegate = [UIApplication sharedApplication].delegate; 
SwitchViewController *switchController = appDelegate.switchViewController; 
switchController.theToolbar.hidden = YES; 
[self.view removeFromSuperview]; 
[self.view insertSubview:startViewController.view atIndex:0]; 

您還需要添加這兩種進口「View_SwitcherAppDelegate.h」和「SwitchViewController.h」。

+0

我整合了IBOutlet UIToolbar * theToolbar;和 @property(nonatomic,retain)UIToolbar * theToolbar; 到SwitchViewController.h併合成它。 我從「MainWindow」中的「Switch View Controller」切換到「theToolbar」。 並且用這幾行代碼: \t \t StartViewController * start = [[StartViewController alloc] initWithNibName:@「StartViewController」bundle:nil]; \t self.startViewController = start; \t [開始發佈]; \t [self.view removeFromSuperview]; \t [self.view insertSubview:startViewController.view atIndex:0]; \t [theToolbar setHidden:YES]; 我得到錯誤,「工具欄未聲明」。 – Tim 2009-12-04 11:02:46

+0

這是我最新的項目源代碼: ud05_188.ud05.udmedia.de/spotlight/Project.zip – Tim 2009-12-04 11:17:39

+0

這是行不通的。下一個屏幕「StartVireController.xib」上有一個文本標籤。但屏幕是白色的。 – Tim 2009-12-08 16:30:39