Objective-c如何正确管理多个视图和控制器

时间:2011-05-14 20:13:43

标签: objective-c uiviewcontroller views structure

我有一个应用程序,最初有一个TabBarController,每个选项卡都是一个ViewController,每个选项卡都有一个调用其他控制器的按钮。

那我该如何构建呢?有一个主要的rootviewController(如果是这样,怎么样?)?或者在appdelegate中只调用tabBarController,并在选项卡内的每个viewControllers中调用其他控制器?

什么是最好的方式,以便我能够前进,回归并灵活地转换视图?

不知道我是否清楚自己......

谢谢你们。

1 个答案:

答案 0 :(得分:0)

通常,您将从名为“Tab Bar Application”的模板开始,从Xcode 4开始,加载MainWindow Nib,其中包含一个标签栏,并且标签栏在IB中设置为具有2个视图控制器,称为“ FirstViewController“和”SecondViewController“......

如果它适合您,您可以遵循该模式,否则您可能希望从基于视图的应用程序开始并添加您自己的标签栏。我个人觉得通过UITabBarDelegate更容易控制标签栏,特别是如果你打算做一些有点深奥的事情。

修改

基本上是两种方式之一,如果您计划加载导航控制器堆栈或单个模态视图。

1)

ThirdViewController * controller = [[ThirdViewController alloc] initWithNibName:@"ThirdViewController" bundle:nil];
UINavigationController * myNavigationController = [[UINavigationController alloc] initWithRootViewController:controller];

[self presentModalViewController:myNavigationController animated:YES];
[controller release];
[myNavigationController release];

2)

ThirdViewController * controller = [[ThirdViewController alloc] initWithNibName:@"ThirdViewController" bundle:nil];
[self presentModalViewController:controller animated:YES];
[controller release];

通过在调用present模式的视图控制器上调用以下内容,返回Tab环境。

  

[自   dismissModalViewControllerAnimated:YES];