Converting an iPhone app to a Universal app?

江枫思渺然 提交于 2019-12-01 05:46:19

问题


I have an iPhone app with FirstViewController and SecondViewController with respective views FirstView.xib and SecondView.xib.

Now I want to make this app work with both iPhone and iPad. For iPad I need to merge Firstview.xib and SecondView.xib into a single ThirdView-iPad.xib.

What would be the best approach? Do I need to write another ViewController class for iPad or can I use existing FirstViewController and SecondViewController with single xib?

My research so far says that there is no way to use multiple ViewControllers with single xib. Please let me know the best way to do this.

Thanks


回答1:


You would be best of to just create a new ViewController unless you're into masochism. Reusing in that way would most likely be to much trouble, and I'd go with aggregation or inheritance in the case you need to reuse logic in your ViewControllers.

I typically create a base ViewController, say XYZViewController and then create a XYZViewController_iPhone with all iPhone-specials and a separate XYZViewController_iPad for iPads. But if they're totally different I give them unique names and their own NIBs as well as ViewControllers.




回答2:


if you are using Xcode4 you can use "transition to universal target" and it will do everything needed

http://xcodebook.com/2011/05/making-an-ios-target-universal/

if you dont have it then I recommend to keep controllers out of your xib. xib files will be only containing views for iphone and ipad but the controllers "can" be same. and you can control your logic from the rootviewcontroller, just an idea..it all depends on your project.




回答3:


There Are following Rules To Convert The Iphone App to Univarsal App

1) In Plist File Add NSMainNibFile~ipad .... MainWindow_ipad(ipad window).

2) Implement separate Names Xibs (Iphone & ipad)

3)in Target Targeted Device Family set to (iphone/ipad) and set The Frames According To Ipad &iphone For example

if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad) {

btnHme.frame=CGRectMake(971,6, 32, 32); //ipad

} else {

btnHme.frame=CGRectMake(438,6, 32, 32); //iphone

}

cheers



来源:https://stackoverflow.com/questions/7011309/converting-an-iphone-app-to-a-universal-app

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!