简体   繁体   中英

Converting an iPhone app to a Universal app?

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

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.

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.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM