从一个视图切换到第二个视图?

时间:2011-05-13 10:00:24

标签: iphone xcode uiview

我想知道,如果我在Xcode中选择了应用程序作为基于窗口的应用程序,那么可以在iPhone应用程序中的两个视图之间切换,或者只能在基于视图的应用程序中切换视图。

如何设计用于更改此类应用程序中视图的界面,因为在设计第一个视图后,我无法在界面构建器中设计第二个视图。

4 个答案:

答案 0 :(得分:2)

您的视图控制器可以显示任何其他视图控制器,如

[firstViewController presentModalViewController:secondViewController animated:YES];

这将带您进入第二个视图控制器。

要回到第一个视图控制器,请在第二个视图控制器中说

[secondViewController.parentViewController dismissModalViewControllerAnimated:YES];

请参阅文档here

答案 1 :(得分:1)

我认为你在这里遇到的主要问题是对每种项目类型的看法。

基于窗口的应用程序只提供一个窗口,没有“默认”视图控制器供您使用。

基于视图的应用程序提供了一个窗口和一个视图控制器和xib文件,供您创建UI。

如果您想了解如何向基于窗口的应用程序添加视图,请创建一个基于空视图的应用程序,并查看自动添加到appdelegate中的didFinishLaunchingWithOptions方法的代码。这基本上是您需要对基于窗口的应用程序执行的操作。

为用户界面添加带有xib文件的视图控制器,然后查看基于视图的应用程序如何加载此视图并显示它(使用initWithNibName然后将视图添加到窗口)

我想你需要做更多的阅读:看看iOS的cocoa基础知识 - 在文档中,然后是视图控制器编程指南)这些都是阅读的重要领域。然后在标准项目类型中有一个根,看看它们是如何设置的,这非常有用,因为你会看到苹果打算在设置应用程序时做什么

答案 2 :(得分:0)

当您拥有控制UIWindow的类时,您可以在该窗口中添加对象。这些对象中的一个或一些是导航控制器或视图。在windowController.h中,您应该定义一个视图:

@property (nonatomic, retain) IBOutlet UIView *mainView;

并在.m文件中合成它:

@synthesize mainView;

然后使用它:

MainView *mainView = [[MainView alloc] initWithNibName:nil bundle:nil];
mainView.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:mainView animated:YES];
[mainView release];

这可能是你的问题中的两件事之一。 您可以问的另一个问题是:如何从基于窗口的应用程序切换到基于视图的应用程序?

您可以使用相应的.xib文件创建新类,即UIView。调整你的appDelegate类,你应该没事。

答案 3 :(得分:0)

在基于视图的应用程序中从一个视图切换到另一个视图

FirstViewController *firstViewController = [[UIViewController alloc] initWithNibName:@"FirstViewController" bundle:[NSBundle mainBundle]];
[self.view addSubview:firstViewController.view];

或者你也可以使用它。

FirstViewController *firstViewController = [[UIViewController alloc] initWithNibName:@"FirstViewController" bundle:[NSBundle mainBundle]];
[self presentModalViewController:firstViewController animated:YES]; // this is deprecated in ios6.0