Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将iphone界面添加到ipad应用程序中,以便在应用程序启动时选择正确的界面?_Iphone_Objective C_Ios_Ipad - Fatal编程技术网

如何将iphone界面添加到ipad应用程序中,以便在应用程序启动时选择正确的界面?

如何将iphone界面添加到ipad应用程序中,以便在应用程序启动时选择正确的界面?,iphone,objective-c,ios,ipad,Iphone,Objective C,Ios,Ipad,我有一个ipad应用程序,希望它也能在iphone上运行(在同一个应用程序中),因此当我在iphone/ipad上安装应用程序时,会选择正确的视图 老实说,我不知道从哪里开始,你能告诉我一些我正在处理的事情吗?如果你查看通用应用程序的默认项目,你可以看到它是如何工作的(请参见此处的ApplicationIDFinishLaunchingWithOptions:method: - (BOOL)application:(UIApplication *)application didFinishLau

我有一个ipad应用程序,希望它也能在iphone上运行(在同一个应用程序中),因此当我在iphone/ipad上安装应用程序时,会选择正确的视图


老实说,我不知道从哪里开始,你能告诉我一些我正在处理的事情吗?

如果你查看通用应用程序的默认项目,你可以看到它是如何工作的(请参见此处的ApplicationIDFinishLaunchingWithOptions:method:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Detects if it is an iPhone.
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
        // It's an iPhone
        self.viewController = [[Test123ViewController alloc] initWithNibName:@"Test123ViewController_iPhone" bundle:nil]; 
    } else {
        // It's an iPad
        self.viewController = [[Test123ViewController alloc] initWithNibName:@"Test123ViewController_iPad" bundle:nil]; 
    }
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    return YES;
}

这允许您根据设备为应用程序的视图控制器选择正确的nib。

Content\u iPhone、Content\u iPad是相同的视图逻辑,但不同的nib

所以你可以像这样把它们装起来

- (void)applicationDidFinishLaunching:(UIApplication *)application
{
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
    {
        // load the content controller object for Phone-based devices
        [[NSBundle mainBundle] loadNibNamed:@"Content_iPhone" owner:self options:nil];
    }
    else
    {
        // load the content controller object for Pad-based devices
        [[NSBundle mainBundle] loadNibNamed:@"Content_iPad" owner:self options:nil];
    }

    [self.window addSubview:self.contentController.view];
    [window makeKeyAndVisible];

}

感谢您的回复。如果我在loadView中声明了我的界面,该怎么办?我是否应该有一些变量来说明我是否有iphone或ipad,并在loadView中为该视图选择相应的代码?在上面的代码中,您可以看到如何检测它是否是iphone或ipad:[[UIDevice currentDevice]userInterfaceIdiom]==UIUserInterfaceIdiomPhone。如果这是真的,那它就是iPhone,否则它就是iPad。