2012-03-13 97 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