2012-03-13 121 views
0

我有兩個UIViewControllers,我有時需要同時顯示。設想ViewController A只有一個按鈕,否則透明。一旦我觸摸按鈕,我想讓ViewController B(這是綠色的)淡入,並做其他自定義動畫,但ViewController A(和按鈕)仍需顯示在B的頂部。一旦淡入淡出/動畫等結束,只有ViewController B(綠色)可見。同時顯示兩個UIViewController

我的問題:

1)什麼是最好的設置?具有隱藏NavBar的UINavigationController沒有多大意義。帶有隱藏TabBar的TabBarController讓我感到奇怪,因爲我不需要TabBar。 2)我對視圖和窗口有點困惑。該窗口在我的AppDelegate init'ed,然後我想補充一個RootViewController的:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
self.viewController = [[ViewController alloc] init]; 
self.window.rootViewController = self.viewController; 
[self.window makeKeyAndVisible]; 

如果我想有上文描述的兩個視圖控制器對彼此的俯視圖,我需要添加視圖控制器的看法B(綠色的)到ViewController A(帶按鈕的那個)?我需要交換rootViewControllers嗎?理想情況下,我不想照顧VC A和B的所有ViewDidAppear,所以我想UINavigationController/TabBar不會是一個壞主意,如果我可以自定義控制器之間的轉換。


編輯:

我真的很需要兩個不同的VC,因爲我會做更復雜的事情只是顯示一個按鈕,就像在一個VC滾動型和滾動型的另一個在VC B.我不希望在一個VC中有兩個滾動視圖(或tableViews等),因爲這會變得混亂。

回答

1

最好的方法是隻有一個視圖控制器。視圖A將會坐在B的頂部,直到你淡出爲止。

+0

是的,但我希望在兩個ViewControllers中具有比上述更多的功能,例如在另一箇中有一個滾動視圖和另一個滾動視圖。我可以用一個ViewController來做到這一點,但它會變得非常混亂,因爲我需要問哪個scrollview當前移動了等等。所以理想情況下,我想要另一個VC。 – 2012-03-13 12:03:20

+1

scrolllview只是一個UIView。將它包含在單獨的視圖控制器中沒有好處。如果您擔心代碼變得雜亂無章,請查看並查看包含其他視圖的自定義視圖類。 – sosborn 2012-03-13 13:35:11

+0

但據我瞭解,scrollview總是需要一個ViewController的委託,而不是?如果我在View A中有一個scrollView並且在View B中有另一個scrollView,那麼我的委託方法在哪裏(如scrollViewDidScroll)?可以查看A和B作爲代表嗎? – 2012-03-13 15:04:25