我想知道,如果我在Xcode中选择了应用程序作为基于窗口的应用程序,那么可以在iPhone应用程序中的两个视图之间切换,或者只能在基于视图的应用程序中切换视图。
如何设计用于更改此类应用程序中视图的界面,因为在设计第一个视图后,我无法在界面构建器中设计第二个视图。
答案 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