在通用应用程序中加载iPad笔尖

时间:2012-04-03 20:13:06

标签: ios ipad xib universal

我设置了一个名为BOOL的{​​{1}}来检测我的用户何时使用iPad。我用它来做到这一点:

isUsingiPad

当我的应用程序首次启动时,它会检查所使用的设备是否已通过我的注册。如果有,则将用户发送到我的应用程序的主View Controller。但是......当注册用户(使用iPad)注册,关闭应用程序,然后重新打开它时,它们将被发送到iPhone笔尖而不是iPad。我的应用程序中的每个视图都有2个笔尖。一个用于iPhone,另一个用于iPad。有一个View Controller控制每组2.我已经设置代码来处理它是iPhone还是iPad。我的问题是:我应该添加什么来确保用户每次都能访问iPad笔尖?我在哪里添加这个?我可以编辑此问题以包含任何必要的代码。提前谢谢。

修改:更新了UIDevice* userDevice = [UIDevice currentDevice]; if (userDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad) { isUsingiPad = YES; } 方法。

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:

2 个答案:

答案 0 :(得分:1)

这是Apple在应用模板中使用的功能,它在AppDelegates applicationDidFinishLaunchingWithOptions中实现:

现在确保您的用户每次都返回到正确的屏幕,具体取决于您的设置,您可能需要在viewDidLoadviewDidAppear中初始化该用户。

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
        self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil];
    } else {
        self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil];
    }
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    return YES;
}

答案 1 :(得分:1)

为了在通用应用程序中动态加载iPad / iPhone的笔尖,您应该使用以下命名约定: -

  • iPhone - MyNibName.xib
  • iPad - MyNibName~ipo.xib

这样做你不需要做任何手动加载或if语句。