如何解决Windows中的iOS,是从Android构建多活动应用程序的最佳方法吗?
| 我目前正在为Android和iOS开发一个应用,事情是...我从Android开始,我的应用中有多个具有不同布局的活动(如果您不熟悉android,则具有不同GUI的屏幕),它们中的大多数显示非常不同的内容;地图,带有数据库数据的列表,图像,带有按钮的文本字段等(而且大多数情况下,屏幕方向会发生变化)。 问题来自iOS: 如何从IBActions创建更多窗口? (这是正确的方法吗?)。 创建窗口后,如何创建新界面? (我需要另一个.xib文件吗?) 如果用户使用一个Windows完成操作,上一个窗口是否仍保留在内存中并且可以重新打开? (即使第一个窗口没有使用,我也可以使用导航选项卡吗?)这是一个主要问题,因为iPhone没有后退按钮,而Android在很大程度上依赖于这些按钮... 另外,如果我无法在几个窗口中拆分程序,我的应用程序会不会因为破坏和构建视图而占用大量内存? 我是Cocoa开发的新手,我已经读过一本有关Objective C编程的书(只讲语法等),另一本关于简单的iPhone应用程序(所有这些都在一个窗口中完成,以编程方式更改了视图)而且我目前正在阅读另一本,但是我找不到解决我问题的简单答案... 我的意思是我得到了Obj-C以及如何构建iPhone应用程序(很好),但是也许问题是我来自Android的更直接的开发。每次我看到一个iOS项目时,都会感觉像是一团糟,而且developer.apple.com中的文档也无济于事,我也找不到我想要的东西。 希望有人已经解决了这个问题,并愿意指出正确的方向,谢谢!解决方法
我建议您从Apple开发人员网站上的《 View Controller编程指南》开始。我认为您会发现它非常有帮助。
要回答您的问题,您可以独立提出每种观点。您可以根据自己的目的,从nib文件中进行开发。在我现在正在使用的应用程序中,我有一些是通过程序开发的,另一些是从NIB文件引入的。全取决于你。我上面提到的指南讨论了这两种方法。
关于通过按钮加载视图,可以做到这一点。根据您使用的视图控制器,可以很容易地完成它。例如,使用导航控制器,您只需创建视图的实例并将其推入堆栈。完成该视图后,将其弹出并返回上一个视图。
关于内存,这始终是一个问题。您可能需要查看《内存管理编程指南》。
祝好运。我自己才刚刚开始进行Android开发。
,克里斯已经提供了一个很好的答案,但是我想补充几个要点来解决特定的问题。
iOS应用程序通常只有一个UIWindow。在该窗口中,您可以显示多个视图。
应用程序通常被组织成若干个逻辑屏幕,这些屏幕上有价值的内容,每个屏幕由一些UIViewController子类管理。
每个UIViewController实例都有一个根视图,该根视图可能包含许多子视图。 UIViewController的视图应该填充其窗口或Apple容器视图控制器类之一(UINavigationController,UITabBarController,UISplitViewController等)提供的某些框架。您不应将一个UIViewController \的视图添加为另一个UIViewController的视图的子视图。
如果应用程序收到不可见的内存警告,则UIViewControllers将尝试卸载其视图。请参阅类的生命周期方法,例如
-viewDidUnload
。您应该支持并利用此行为以减少内存占用。将UIViewControllers保留在内存中而不加载其视图应该具有最小的开销,允许您保持某些持久状态,并且可以在需要时重新加载每个控制器的视图。
通常,为了在视图之间转换,控件将向当前视图控制器发送一条消息(通常通过IBAction绑定)。然后,当前控制器将触发到另一个视图控制器的转换。它可以通过创建一个新的视图控制器并将其推入当前导航控制器或将新控制器呈现为模态来实现。它可能参考了一些现有的控制器并提出了建议。它可能会从导航堆栈中退出以显示先前的控制器。它甚至可能在控制器的层次结构中传递消息,直到某些父级切换可见选项卡,关闭或显示模式等等。
您还可以通过添加,删除,隐藏或移动UIViewController根视图的子视图来响应IBAction,从而触发较小的过渡。
, Flash Builder 4.5.1现在使您可以构建一个应用程序并编译为多个设备
更新:尝试XAMARIN,它是Visual Studio的一部分:
https://www.xamarin.com/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。