【发布时间】: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