【发布时间】:2012-04-16 11:34:05
【问题描述】:
我相信我已经做了一切必要的事情来更改我的 ipad 应用程序(一开始是为 iphone 准备的)。我可以将构建状态切换为 iphone(仅)、ipad(仅)或 iphone/ipad - 应用程序在 ipad 或 iphone 模拟器中启动。我可以随意来回做。
我添加了用于检查 ipad 的习惯用法,基本上是检查我的 xib 之一,而不是使用 xib 的字符串来创建控制器,而是使用 ipad 的那个。因此,它是 ipad 的新 xib,具有所有相同的图形对象(放大 ;-))。我添加了回调以使用 IB 正常运行。
我可以看到一切正常并进入我的新 ipad 视图,但是当我单击我的一个按钮时......如果我的回调不起作用,没有任何事情发生。这是非常令人惊讶的,实际上我不知道在哪里看,因为我比较了我的 iphone 和 ipad 视图之间的大部分参数,就我所见,它们是相同的。
这一定很明显,所以如果你们中的一个人有同样的问题并且这是一个非常简单的答案......我想这就是我错过的!
提前感谢您的帮助
干杯, 啧啧
EDIT1:根据要求提供一些代码
一开始我可以决定哪种方式:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
examTFVC_NIB=@"ExamTFViewController-iPad";
}
else
{
examTFVC_NIB=@"ExamTFViewController";
}
然后去右视图:
ExamTFViewController *examTFViewController = [[ExamTFViewController alloc]
initWithNibName:globals.examTFVC_NIB bundle:nil];
但我加载正确的 XIB 没有问题。问题实际上是没有调用回调函数......
感谢您的帮助。
编辑2: 我还意识到调用 xib xxx~ipad 的扩展可以避免上面的示例代码。它可以工作 - 但仍然无法调用任何函数。
编辑3: 重要发现:如果我将按钮移到屏幕左侧更高的位置:它们会起作用!因此,尽管我在 ipad 屏幕上,但如果事件在 iphone 屏幕区域内,似乎会调用这些函数。我想知道找到问题会更明显!感谢您的帮助 - 刚刚开始了 geebee
回答
iPad touch detected only in 320x480 region
- (void)applicationDidFinishLaunching:(UIApplication *)application {
// to correct region size
CGRect rect = [[UIScreen mainScreen] bounds];
[window setFrame:rect];
// now, display your app
[window addSubview:rootController.view];
[window makeKeyAndVisible];
}
** 或其他解决方案 **
在启动时检查全屏复选框 - 仅存在于 ipad xib 主窗口中
【问题讨论】:
-
您是否将您的 IBAction 方法连接到 iPad xib 文件?
-
我知道这是显而易见的,是的,我确实连接了这些方法。会是什么?
-
我添加了一些代码-希望对您有所帮助-提前感谢您的帮助
-
它几乎必须在 .xib 文件中,我想。您可能已经这样做了几次,但请查看 ExamTFViewController-iPad.xib(检查名称)并验证文件所有者在身份检查器中显示正确的类(并且当文件所有者时,连接检查器中的所有内容看起来都很好是选定的对象)。
-
如果您也定义了 IBOutlets,那么在调用 viewDidLoad 时知道它们是否已正确设置会很有趣。
标签: iphone ipad callback xib viewcontroller