3

好的,知识渊博的程序员类型,请温柔...

我无法让一个非常简单的单视图“Hello World”应用程序自动旋转。我经历了通常的“Hello World”步骤:

  • 创建一个新的基于视图的项目。
  • 双击 ViewController 的 .xib 文件。
  • 从库中添加一个项目。我试过标签和滑块。
  • 将 Struts 和 Springs 更改为仅 Springs 以将项目保持在视图的中间。
  • 保存并编辑 ViewController 的 .m 文件,使其显示为:
  • /*
    // Override to allow orientations other than the default portrait orientation.
    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
        // Return YES for supported orientations
        return YES;
    }
    */
    

    (嗯... Duh。我刚看到它。但我会继续我的故事以供您娱乐。)

  • 保存、构建、运行、旋转,并注意到当我旋转 iPhone 模拟器时没有任何旋转。而且,不,我没有旋转我的笔记本电脑……我使用了键盘快捷键!

    在谷歌搜索大约一个小时后,沮丧开始了。在我所见之处,每个消息来源都说同样的话:只需将返回值更改为“是”即可。但是...

    我什至将调试器断点插入!他们都没有被击中!(震惊,惊讶!)我不知道如何使用调试器,我在“initWithNibName”上设置了一个断点。你猜怎么了?!那也没有被击中!有没有搞错?!

    所以我下载了 Apple 的 WhichWayIsUp 应用程序来测试我的断点 l33t 断点技能。果然,当我旋转“iPhone”时它会发出哔哔声。那我做错了什么?!

    当然,我并没有那么无知,我……不,等等,我收回那句话。如果你看到我上面的错误,那么你肯定会想,“是的,他就是那么无知。” 你是对的。

    对于那些偶然发现这个问题,同样感到沮丧并且还没有看到问题的人,这里是答案:整个shouldAutorotateToInterfaceOrientation方法由“/* */”注释标记封装。它从来没有被编译过,更不用说被调用了。

    现在,据我所知,我发现的任何来源都没有表明您必须确保代码块未注释。一些人说,“你所要做的就是改变一行代码。” 而且,除了那些上面有评论标记的另外两个之外,它们是完全正确的。

    如果我只是帮助了其他一些 n00b,那就太好了。如果我让你嘲笑我的失败,那就更好了。

    谢谢大家,你们的帮助!

  • 4

    1 回答 1

    5

    答案就在问题中,即shouldAutorotateToInterfaceOrientation方法包含在注释标记中。删除该方法前后的“ /*”和“ */”解决了该问题。

    于 2010-06-04T00:06:05.850 回答