【问题标题】:iPad orientation and xib filesiPad 方向和 xib 文件
【发布时间】:2012-01-05 09:26:35
【问题描述】:

我在 iPad 应用程序中使用一个 xib 文件作为我的第一个屏幕。在该 xib 文件中,我在背景中使用一个图像视图和一个按钮,如果我单击该按钮,它将转到另一个页面。我的应用程序支持两种方向。现在的问题是,假设我单击该按钮并进入第二页,然后更改设备的方向然后返回主页,现在主页按钮的框架已更改。所以我无法理解第二次点击到第二页的位置。

请帮我解决这个问题。

【问题讨论】:

    标签: ipad file xcode4 orientation xib


    【解决方案1】:

    我发现了一种独立于导航控制器的更好方法。现在,我在嵌入导航控制器和未嵌入时都可以工作(虽然我现在没有使用导航控制器,所以可能有一些我没有看到的错误 - 例如,PUSH 过渡动画可能会消失好笑之类的)

    两个 NIB,使用 Apple 的命名约定。我怀疑在 iOS 6 或 7 中,Apple 可能会将其添加为“功能”。我在我的应用程序中使用它并且效果很好:

    触发器将旋转,不应该旋转(等到旋转动画即将开始) 对横向/纵向文件使用 Apple 命名约定(如果您希望 Apple 自动加载横向版本,则 Default.png 为 Default-landscape.png) 重新加载新的 NIB 重置 self.view - 这将自动更新显示 然后它调用 viewDidLoad(如果你手动重新加载 NIB,Apple 不会为你调用它)

    (NB stackoverflow.com 在这里需要这句话 - 代码格式化程序中有一个错误)

     -(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
    {
      if( UIInterfaceOrientationIsLandscape(toInterfaceOrientation) )
    {
        [[NSBundle mainBundle] loadNibNamed:[NSString stringWithFormat:@"%@-landscape", NSStringFromClass([self class])] owner:self options:nil];
    
        [self viewDidLoad];
    
    }
    else
    {
        [[NSBundle mainBundle] loadNibNamed:[NSString stringWithFormat:@"%@", NSStringFromClass([self class])] owner:self options:nil];
         [self viewDidLoad];
    
    }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-07
      • 2012-04-02
      • 2011-05-12
      • 1970-01-01
      • 2011-07-13
      • 2012-11-09
      相关资源
      最近更新 更多