【问题标题】:Rotation problems, managing subviews in a custom TabBarController旋转问题,在自定义 TabBarController 中管理子视图
【发布时间】:2010-12-03 16:25:08
【问题描述】:

我正在实现一个自定义TabBarViewController,除了设计之外应该具有相同的行为。

我在一个数组中管理我的subViewControllers,使用延迟加载初始化视图,如“开始 Iphone 开发”第 6 章中所述,我通过在数组中填充与标签一样多的 NSNull 对象并替换它们来实现需要时使用新初始化的viewControllers

这样我可以跟踪视图的正确顺序并将它们与正确的选项卡相关联(数组中的第一个位置保留给第一个视图等)。

切换视图时,使用[currentViewController.view removeFromSuperview]; 删除当前视图并使用[self.view addSubview:newViewController.view]; 添加新视图。现在以前的视图保存在数组中以供将来使用。

旋转设备时会出现困难,因为(我认为)我的数组中的 viewControllers 当时没有添加到超级视图中 addSubview 没有被旋转,我猜这是有道理的.

结果是当旋转后,例如切换到横向模式,用户切换到他之前已经存在的视图,这是因为已经初始化,视图仍然以纵向模式呈现给他。

那么我的问题是:

1) 我是否必须手动旋转未添加的子视图?如果需要,如何最简单地完成?

2)普通的TabBarController如何管理它的控制器,换句话说,我做对了吗?

【问题讨论】:

    标签: iphone uiviewcontroller uitabbarcontroller rotation


    【解决方案1】:

    为什么不尝试根据用户所处的当前模式(纵向或横向)更改视图控制器的视图属性的框架

    所以在 shouldAutoRotateToInterfaceOrientation 中只需更改 yourviewcontroller.view.frame = CGRectMake(x,y,width,height),也许你会得到你的旋转视图!

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-27
      • 1970-01-01
      相关资源
      最近更新 更多