相关疑难解决方法(0)

iOS:使用设备修饰符加载xib文件?

您可以使用设备修改器(即~ipad)在Info.plist中提供设备特定的密钥,并指定特定于设备的启动图像(iPhone的Default.png和iPad的Default~ipad.png,例).Apple Docs中特别提到了这两件事,但他们并未说这适用于任何其他类型的文件.

我发现(非常偶然)这适用于通过加载.xib文件initWithNibName:bundle:.例如,我可以使用MyView.xib和MyView~ipad.xib,以及此代码:

MyViewController *viewController = [[MyViewController alloc] 
                                     initWithNibName:@"MyView" bundle:nil];
Run Code Online (Sandbox Code Playgroud)

...将在iPad上完全加载MyView~ipo.xib,在其他设备上加载MyView.xib.

那么,1)这是在某处记录的吗?我肯定找不到任何Apple文档.它确实比检查UI_USER_INTERFACE_IDIOM()并在任何地方硬编码两个不同的笔尖名称更容易,但如果没有记录,我有点不相信它.

并且,2)有谁知道这个iOS开始工作的版本是什么?我只在4.2中试过它,它在那里工作.一般的设备修饰符(即使是上面列出的文档内容)也只有4.0.

iphone cocoa-touch objective-c ipad ios

49
推荐指数
2
解决办法
2万
查看次数

在视图控制器中为iPhone/iPad动态加载笔尖

我已经使用XCode中的向导将iPhone应用程序转换为通用应用程序.

它建立得很好但显然在某些方面看起来有点垃圾:)

我需要根据使用的设备加载笔尖.我不希望创建我的视图控制器,initWithNib因为我已经有代码来创建带有一些数据(initWithMyLovelyData)的控制器,它与nib加载没有任何关系.

我知道要找出你使用的设备,UI_USER_INTERFACE_IDIOM()所以我尝试覆盖initWithNibName实际的视图控制器本身,假设它们以某种方式在内部调用.但它不起作用,因为我猜我不确定语法.

我试过了

if(ipad..) self = [super initWithNibName:@"MyIpadNib" bundle:nibBundleOrNil];
Run Code Online (Sandbox Code Playgroud)

这不起作用:/

编辑 - 我知道我已经大量编辑了这个,在做了一些更多的研究之后让我的问题更加具体 - 道歉!

iphone objective-c universal ipad

20
推荐指数
2
解决办法
2万
查看次数

标签 统计

ipad ×2

iphone ×2

objective-c ×2

cocoa-touch ×1

ios ×1

universal ×1