Iphone iOS中的Windows,从Android构建多活动应用程序的最佳方式?

Iphone iOS中的Windows,从Android构建多活动应用程序的最佳方式?,iphone,android,objective-c,ios,cocoa-touch,Iphone,Android,Objective C,Ios,Cocoa Touch,我目前正在为Android和iOS开发一个应用程序,事情是。。。我从安卓开始,我的应用程序有几个不同布局的活动(如果你不熟悉安卓,屏幕上有不同的GUI),大多数都显示非常不同的内容;地图、包含数据库数据的列表、图像、带有按钮的文本字段等(大多数情况下,屏幕方向会发生变化) iOS存在以下问题: 如何从iActions创建更多窗口?(这是正确的方法吗?) 创建窗口后,如何创建新界面?(我需要另一个.xib文件吗?) 如果用户使用完一个窗口后,上一个窗口是否仍保留在内存中并可以重新打开?(我可以使

我目前正在为Android和iOS开发一个应用程序,事情是。。。我从安卓开始,我的应用程序有几个不同布局的活动(如果你不熟悉安卓,屏幕上有不同的GUI),大多数都显示非常不同的内容;地图、包含数据库数据的列表、图像、带有按钮的文本字段等(大多数情况下,屏幕方向会发生变化)

iOS存在以下问题:

  • 如何从iActions创建更多窗口?(这是正确的方法吗?)

  • 创建窗口后,如何创建新界面?(我需要另一个.xib文件吗?)

  • 如果用户使用完一个窗口后,上一个窗口是否仍保留在内存中并可以重新打开?(我可以使用导航标签吗,即使第一个windows没有使用它?)这是一个主要问题,因为iPhone没有后退按钮,Android非常依赖这些按钮

  • 另外,如果我不能在几个窗口中拆分我的程序,我的应用程序在销毁和构建视图时不会占用大量内存吗

我是Cocoa开发的新手,我已经读过一本关于Objective C编程的书(只教语法等),另一本关于简单的iPhone应用程序(所有这些都是在一个窗口中完成的,以编程方式更改视图),我目前正在读另一本,但我找不到一个简单的问题答案

我的意思是我得到了Obj-C以及如何构建iPhone应用程序(有点),但问题可能是我来自于Android更直接的开发。每次我看到一个iOS项目,我都觉得它一团糟,developer.apple.com上的文档也帮不了什么忙,我无法找到我想要的东西


希望有人已经经历了这一切,并愿意为我指出正确的方向,谢谢

Flash Builder 4.5.1现在允许您构建一个应用程序并编译到多个设备

更新:尝试XAMARIN,它是Visual Studio的一部分:

我建议您从apple开发者网站上的开始。我想你会发现它非常有用

为了回答您的问题,您可以独立地发展您的每个观点。根据您的目的,从nib文件开发每一个都可以。在我现在正在开发的应用程序中,我有一些是通过编程开发的,还有一些是从NIB文件中引入的。一切由你决定。我上面提到的指南讨论了这两种方法

关于从按键加载视图,您可以这样做。根据您使用的视图控制器,可以非常轻松地完成此操作。例如,使用导航控制器,您只需创建视图的实例并将其推送到堆栈上。完成视图后,将其弹出并返回到以前的视图

关于记忆,这一直是个问题。你可能想看看


祝你好运。我自己才刚刚开始安卓开发。

克里斯已经提供了一个很好的答案,但我想在回答具体问题时补充几点

iOS应用程序通常只有一个UIWindow。在该窗口中,您可以显示多个视图

应用程序通常被组织成几个逻辑屏幕,每个屏幕都由一些UIViewController子类管理

每个UIViewController实例都有一个根视图,其中可能包含许多子视图。UIViewController的视图需要填充其窗口或Apple容器视图控制器类(UINavigationController、UIAbbarController、UISplitViewController等)提供的某个框架。不应将一个UIViewController的视图添加为另一个UIViewController视图的子视图

如果视图不可见,当应用程序收到内存警告时,UIViewController将尝试卸载其视图。请参阅类的生命周期方法,如
-viewDidUnload
。您应该支持并利用这种行为来减少内存占用。将UIViewController保留在内存中而不加载其视图应该具有最小的开销,允许您保持一些持久状态,并且可以在需要时重新加载每个控制器的视图

通常,要在视图之间转换,控件将向当前视图控制器发送消息(通常通过iAction绑定)。然后,当前控制器将触发到另一个视图控制器的转换。它可以通过创建一个新的视图控制器并将其推到当前导航控制器上或将新控制器显示为模式来实现。它可能引用了某个现有的控制器,并显示该控制器。它可能会从导航堆栈中退出,以显示以前的控制器。它甚至可能将消息向上传递到控制器的层次结构,直到某个父级切换可见选项卡、取消或显示模式,等等


您还可以通过添加、删除、隐藏或移动UIViewController根视图的子视图来响应iAction,从而触发较小的转换。

但是,这真的是一种好方法吗?我已经在实践中看到了它,对于游戏来说它是很棒的,但是对于更复杂的应用程序呢?有人说它跑慢了。。。我更喜欢用本地语言开发,我的意思是,我也很期待成为一名iOS开发人员……我同意,但如果你想找一个平台来编写一次代码并在多个平台上部署,你需要使用Adobe Flash Builder或类似PhoneGapThank的东西。谢谢!如果你需要安卓系统的帮助,请告诉我!又打扰你了,克里斯。。。你知道我如何制作一个带有3个按钮的主菜单,以显示不同的屏幕吗?我的主菜单由带有应用程序徽标的标题图像和3个使用图像的按钮组成。。。我已经让按钮工作了(它们会打开一个警报对话框),但是,正如我在文档中读到的,我需要一个视图控制器来更改屏幕c