越野车导航控制器,将iPhone应用程序移植到iPad

时间:2010-07-27 20:28:28

标签: iphone objective-c ipad uinavigationcontroller

我有一个相当简单的iPhone应用程序,我想在iPhone和iPad上运行。我想让iPad版本成为iPhone版本的更大版本,不论是否扩大规模 - 我正在开发一款特定于iPad的应用程序版本,可以更好地利用界面,但我想制作确保我现有的客户在此期间有所作为。

该应用程序是一个简单的基于选项卡的应用程序,每个选项卡中都有一个导航控制器,它提供了一个表视图,每个视图都可以向下钻取几个层。一切都很有效 - 我有几个视图实例没有填补可用空间,但我可以解决这个问题。我现在最大的问题是导航控制器在我尝试使用它时会普遍断裂。一旦我钻了一两级,我突然无法再次回来。

让我试着更详细地解释一下:

一个标签以“年”表格视图开始,显示所有有条目的年份;如果你点击一年,它会推动另一个表格视图,该年份的所有月份都有条目;如果点击一个月,它会推送另一个显示各个条目的表格视图;如果你点击一个条目,它会推送一个视图(一个UIWebView,带有一些额外的小部件),显示条目的详细信息。

每次推送均由[self.navigationController pushViewController: foo animated: YES]完成。我上面提到的三个表视图控制器都是从同一个nib创建的(事实上,在同一个nib中加载任何选项卡中导航控制器上的所有)。由于我知道最多只有三级导航,我只分配了三个相同的视图控制器,并根据有多少条目使用一个,两个或三个。

使用“后退”按钮弹出这些控制器似乎普遍搞乱了视图控制器的状态。所以,如果我深入到第三个视图 - 显示一个月内的所有内容 - 我将无法一直回到第一个视图:如果我弹出一个级别,后退按钮就会停止工作。

另一个选项卡中的另一个示例:它是一个表视图,您可以点击任何条目,并将推送一个新的视图控制器,显示该条目的详细信息。如果我点击一个条目,点击后退按钮,然后再次点击该条目,没有后退按钮,或有时会出现在后退按钮内的文本,但没有按钮出现!

如果我尝试以缩放模式运行iPhone应用程序(使用基本SDK 4.0构建,支持OS 3.2)或以纯模式运行(使用基本SDK 3.2构建),则会发生此行为。它在iPhone上运行没有问题。我在这里有点不知所措,因为这些东西总是“刚开始工作”,主要来自我第一次创建项目时设置的默认值。

我的程序员的直觉告诉我,我在视图导航中做了一些非常错误的事情,并且iPad正在暴露它,但我无法弄清楚它是什么。

有没有人遇到过这样的问题,或者提出可能的建议或调试正在发生的事情的更好方法?

1 个答案:

答案 0 :(得分:0)

问题是我在NSMutableArray上有一个类别,它添加了类似堆栈的方法pushpop。删除此类别类修复了此问题。

但是,WTF。