我有以下代码,它的计算结果为true,并在OS 2.2.1中向右(或左)旋转的大括号内运行代码。但是,如果编译并运行OS 3.0,则相同的代码行不会评估为true(或进入大括号)...
我这样说是因为在调试器(和日志)中,如果我编译为3.0,则会跳过大括号内的行
这是在textView ...
上的textViewDidBeginEditing方法内部相对于如何处理,2.x和3.0之间是否有变化?非调整大小的文本字段已被用户注意为我正在尝试修复的错误...
这不是我原来的代码,当我看到它时,我开始认为我应该实现一些轮换的委托方法......?但是这个说法不起作用仍然让我感到困惑......
提前感谢任何建议......
if((self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft)||(self.interfaceOrientation == UIInterfaceOrientationLandscapeRight))
{
[self setTextViewHeight:107];
NSLog(@"inside if self.interfaceorientation...");
}
答案 0 :(得分:1)
我不知道为什么,但是这个视图控制器不知道它自己的interfaceOrientation。我认为这与它在UITabBarController“内部”的事实有关......以及处理这个问题的“新方法”,Apple改变了3.0。
欢迎澄清对“变化”的评论!
底线,self.interfaceOrientation总是评估为1(“Up”),无论设备如何旋转......
我通过改变引用并使用MyTabBarController.interfaceOrientation来解决这个问题,因为TabBarController“超类”似乎可以“知道”设备的方向是什么。
(当然,我必须给这个类一个MyTabBarController的引用,当MyTabBarController将所有UIViewControllers加载到自身时完成...)这已经存在于代码中......
鉴于该引用,以下简单的更改使我可以访问旋转的“真实”状态...并且此代码在预期时运行...
if ((myTabBarController.interfaceOrientation == UIDeviceOrientationLandscapeLeft) || (myTabBarController.interfaceOrientation == UIDeviceOrientationLandscapeRight)) {
[self setTextViewHeight:116];
答案 1 :(得分:0)
如果要测试是否输入了此块,请在textviewheight分配之前尝试一个日志语句(如果在分配时出错则提前退出)