【问题标题】:ipad UIImagePickerController problem?ipad UIImagePickerController 问题?
【发布时间】:2011-10-06 16:33:23
【问题描述】:

我的应用程序是 iphone 应用程序而不是通用应用程序。我正在实现 uiimagepickercontroller,它在 iphone 中运行良好。但是我们的客户在 ipad 上测试我的应用程序时应用程序会崩溃。我发现问题“在 iPad 上,必须提供 UIImagePickerController通过 UIPopoverController'
我正在通过

检查设备

NSString *deviceType = [UIDevice currentDevice].model;

(此代码适用于通用应用程序) 仅为 iPad 实现 UIPopoverController。但是即使我换成 iPad 模拟器,deviceType 总是显示“iPhone”。是否有可能在 iphone Build 中解决这个问题?

【问题讨论】:

    标签: iphone ipad


    【解决方案1】:

    我为解决这个问题单独做了 iPad。因为我无法在 iPhone 应用程序中获取设备类型 iPad。

    【讨论】:

      【解决方案2】:

      您应该使用UI_USER_INTERFACE_IDIOM 宏来检查设备。

      if (UIUserInterfaceIdiomPad == UI_USER_INTERFACE_IDIOM())
      {
          // your code
      }
      

      UIDevice 不是这里的正确选择。

      【讨论】:

        【解决方案3】:

        就像 Erica Sadun 所说,您可以通过以下方式访问设备字符串:

        - (NSString *) getSysInfoByName:(char *)typeSpecifier
        {
            size_t size;
            sysctlbyname(typeSpecifier, NULL, &size, NULL, 0);
            char *answer = malloc(size);
            sysctlbyname(typeSpecifier, answer, &size, NULL, 0);
            NSString *results = [NSString stringWithCString:answer encoding: NSUTF8StringEncoding];
            free(answer);
            return results;
        }
        

        【讨论】:

        • 有可用的高级类和函数允许确定应用程序正在运行的设备类型。无需依赖底层API,以后可能会出现不兼容等问题。
        • 你说得对,不需要依赖低级api来确定设备类型,但是我找不到资源来确定硬件型号名称。
        【解决方案4】:

        参考UIDeviceuserInterfaceIdiom属性

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-11-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-11
          • 1970-01-01
          相关资源
          最近更新 更多