Ale*_*lex 2 iphone objective-c ipad ios
我有一个iPad应用程序和一个iPhone应用程序.
我想加入他们,以便如果加入应用程序将在iPad上运行它将有一个行为,如果它在iPhone上运行它将有另一个.
我想的第一件事是制作不同的视图并选择iphone/ipad的视图,但我也有一些特定于ipad和iphone的东西(例如:splitViewController),所以只选择一个不同的视图将无济于事.
加入2个这样的应用程序的最佳方式是什么?我想要一种比做类似的更优雅的方法
if(isIPhone)
{
// code for iphone
}
else if(isIPad)
{
// code for iPad
}
Run Code Online (Sandbox Code Playgroud)
每次我有两个版本之间的差异.谢谢!
我相信WWDC 2010会议视频包含一个涵盖此问题的iPad开发概述.
根据Apple的指导,这是我采取的方法:
您可以设置特定于平台的主界面笔尖,这意味着您也可以设置特定于平台的应用程序委托.因此,您可能拥有一个超级应用程序委托,它可以完成您的所有应用程序设置,然后是子类来部署iPad UI或iPhone UI.
这很有用,因为在iPad上,拆分视图需要交通警察来确定哪些内容在哪里.现在你有一个位置可以将该逻辑独立于视图控制器:在app delegate中.
从那里,只要有一个视图控制器对两个平台都是通用的,但每个平台都有一些特定的行为,就会创建一个处理所有常用功能的视图控制器超类.然后,特定于iPad的子类可以覆盖-refreshView:方法以执行一些额外的动画,或者添加属性和委托方法以支持拆分视图.
虽然你可以肯定地测试iPad-ness if else,但是在视图控制器中,当你添加仅在一个平台上重要的委托方法时,这可能会变得非常粗糙.通过这种方式将其拆分,您可以获得更易于维护和读取的代码.这可能意味着对现有项目进行大量重构.在我的情况下,它只花了大约一个小时,结果是一个非常整洁的应用程序,很容易跳入并修改一个或两个平台.
| 归档时间: |
|
| 查看次数: |
267 次 |
| 最近记录: |