如何制作iPhone和iPad版的应用程序?

Nik*_*kil 11 iphone objective-c uiview ipad

我正在尝试制作适用于iPhone和iPad的应用程序.我正在寻找如何使两者兼容的接口.当应用程序加载时,我正在显示表格视图.如何根据设备加载不同的笔尖?我用这个来切换笔尖.

if ([[UIDevice currentDevice] respondsToSelector:@selector(userInterfaceIdiom)]) 
    {
        if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) 
        {
            device = @"iPad";
        }
        else 
        {
            device = @"iPhone";
        }

    }
Run Code Online (Sandbox Code Playgroud)

但在MainWindow.xib中,它表示视图是从iPhone的视图控制器加载的.我可以根据设备制作这种动态吗?即我想从应用程序的开始显示基于设备的不同笔尖.谢谢.

Ada*_*dam 27

实际上,Apple会自动执行所有操作,只需命名您的NIB文件:

MyViewController~iphone.xib // iPhone
MyViewController~ipad.xib // iPad
Run Code Online (Sandbox Code Playgroud)

并使用最少量的代码加载视图控制器:

[[MyViewController alloc] initWithNibName:nil bundle:nil]; // Apple will take care of everything
Run Code Online (Sandbox Code Playgroud)


han*_*nno 6

你可以用类似的方式做到这一点:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
    mainMenu = [[MainMenu alloc] initWithNibName:@"MainMenuiPad" bundle:nil]; 
}else{  
    mainMenu = [[MainMenu alloc] initWithNibName:@"MainMenu" bundle:nil]; 
}
Run Code Online (Sandbox Code Playgroud)


Ish*_*shu 5

制作通用应用程序,

适用于iPhone/iPad的应用程序的信息构建选项卡中的1组目标系列.

2-从主窗口删除窗口.

3-为iPhone添加两个xib,为iPad添加一个(通过选择iPad xib).

4-将appDelegate类作为这些xib的控制器文件.

5-在这些xib上添加窗口并查看控制器或导航控制器,并通过IB Inspector设置加载笔尖名称和控制器文件,其中一个是您的第一个视图.

6-然后为具有tableview或其他控件的iPad和iPhone制作不同的xib.

7-为不同的设备制作单个控制器文件或不同的控制器文件,如果是其他条件你需要检查设备

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
Run Code Online (Sandbox Code Playgroud)

8-现在你需要在方法didFinishL--中的appDelegate类中加载xib

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){

   // load your nib for iPad here which having view controler or navigation controller as well window.
}else{  
    //load nib for iPhone. 
}
Run Code Online (Sandbox Code Playgroud)